C语言中怎么输入字符串并从中逐一读取字符?

C语言中怎么输入字符串并从中逐一读取字符?,第1张

#include<stdioh>
#include<stringh>
int main()
{
char para[100];
int i,k;
/scanf("%c",para);//%c是单个字符。。。
k=scanf("%c",para);
while(k!=EOF)
scanf("%c",para);
printf("the input words: \n");
for(i=strlen(para);i>=0;i--)
printf("%c",para[i]);
/
i=0;
scanf("%c",&para[i]);
while(para[i]!='-')//以输入-(负)号为字符串输入的结束
{
i++;
scanf("%c",&para[i]);
}
k=i;//k是字符串的长度
for(i=k-1;i>=0;i--)//字符串的倒序输出
printf("%c",para[i]);
printf("\n");
return 0;
}

试试上述代码,我调试过了。。。。

大哥哥啊,'\0'是不可输入字符呀,你可以改成别的asscii码,比如'\n',还有啦,看看你for后面的分号,编译运行下小弟给的代码。

#include<stdioh>
int
main()
{
char
string[100];
int
i;
printf("enter
a
string:");
for
(
i=0;scanf("%c",&string[i]),string[i]!='\n';i++);
for
(
i=0;string[i]!='\n';i++)
printf("%c",string[i]);
printf("\n");
return
0;
}合乎要求吧,不过你想把回车也读进去,就用EOF,记得用ctrl+c结束哦

用fgets就可以了
原型是char
fgets(char
s,
int
n,
FILE
stream);
从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL
char
t[100];
fp=fopen("file","r");
fgets(t,81,fp);
//从fp文件中读入80个字符,如果遇到回车或不足80个,就结束读取

1、打开VS新建一个Windows窗体应用程序,命名为CharToArray。

2、在新建项目中的Form1窗体上,加上两个Label和两个文本框 以及一个按钮,分别命名为:请输入字符串,转换的数组:按钮名称为“转换”。

3、双击Button按钮,在click里面编辑一下代码。首先在文本框输入一个字符串,然后把字符串拆分为数组,存到文本框txtArray里面。

4、点击生成,运行程序,在d出的界面中,输入字符串,然后点击转换。

5、把字符串的值一个一个赋值到数组中,我们也可以把字符串中的一个或者多个值,拆分为一个值,赋值到数组中。

6、此时我们需要判断字符串的长度,若是开始的索引,到最后,没有两个字符,那就需要复制为一个字符了。

正读:scanf("%s",a+1); 这样就从a[1]开始
倒读:for(int i=N-1;i>0;i--) //N是你数组的长度或者比数组长度小的常
{ //量,i>0也就是到a[1]结束
scanf("%c",a+i); //因为倒过来,所以一个一个元素往里放
}
a[N]='/0'; //别忘了数组最后一个元素是0
理解scanf()的运作方式:每次输入都从缓冲区读取一定的内容
比如如果是%c,那么从缓冲区读取1个字节如果你输入了"abcd"那么先把'a'放进去,然后第二次循环把'b'放进去以此类推

标准C中没有提供这样的函数,可以自定义一个这样的函数,以实现getline()函数的功能。参考代码如下:

int get_str( char s, int size, const char ch='\n' ) //如果不输入第三个参数,默认为回车符
{
    int i;
    for( i=0;i<size-1;i++ )
    {
        s[i]=getchar(); //读入一个字符
        if ( s[i] == ch ) //遇到指定字符,结束输入
            break;
    }
    s[i]='\0'; //字符串结束符
    return i; //返回读入字符串数据的长度
}
void main()
{
    char str[10];
    get_str( str, sizeof(str), '#' ); //以#结束
    printf("input is :%s\n", str );
    fflush(stdin); //清除缓存中的残余数据
    
    get_str( str, sizeof(str) ); //以回车结束
    printf("input is :%s\n", str );
}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12948649.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-28
下一篇2025-08-28

发表评论

登录后才能评论

评论列表(0条)

    保存