C语言读取字符串的问题

怎样将一个大字符串一个一个字符分开来读?
例如:输入abcdefg 就要将其以“a”“b”“c”“d”“e”“f""g"的形式读入
谢谢

一个一个字符读,读到 空格 或 换行结束:
#include <stdio.h>
main(){
int i;
char str[80];
i=0;
while(1){
str[i] = getchar();
if (str[i]==' ' || str[i]=='\n') break; // 读到 空格 或 换行结束
i++;
}
str[i]='\0'; // 加字符串结束符
printf("%s",str);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-09

为什么要分开读

char str[256];char a,b,c,d;
 gets(str);//读入一行字符串
 a=str[1];b=str[2];c=str[3];//分开使用

第一个字符str[0],第二个字符str[1],好像没必要分开读

追问

额……
如果必须要分开读怎么办 比如不知道字符串的具体长度

追答#include<stdio.h>
#include <conio.h>
int main()
{
 char str[256];
 int i=0;
 while((str[i]=getch())!='A'/*终止条件,这里读到A停止*/){if(str[i]=='\r')printf("\n");else printf("%c",str[i]);i++;/*后面添加每读入一个字符后要执行的代码*/ }
 return 0;
 }

追问

额……
好似没有看懂……

第2个回答  2014-01-09
你鼓励程序一个字符一个字符读入啊追问

…………

追答

教育做的好,成长就特别快。我们要给它们讲做程序的道理,早上教它们英语,下午教它们高数……好了不扯了,getchar()读入一个字符吧,结尾判断getchar()!=“\0”,你试试呗

追问

谢谢啦

第3个回答  2021-05-19

相似回答