c语言中如何将一句话存入数组

比如从键盘输入All of the problems of the world could be settled easily if men were only willing to THINK.(整句输入完后按回车)首先如何将它存入char类型的数组中?并且如何从头到尾把其中的单词调用一次,也就是遍历数组?请给出例子代码

    若是从控制台输入,使用gets函数即可。把一句话话存入字符数组当中。
    使用形式:char *gets( char *str );     

    gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。gets()函数读取到\n(我们输入的回车)于是停止读取,但是它不会把\n包含到字符串里面去。所以gets()函数可以读取整句话,包含每一个标点符号,每个空格,直到换行符

    若是从文件输入,使用fgets函数。fgets函数和gets函数类似。

    使用形式:char *fgets( char *str, int count, FILE *stream );

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-03
你的意思是每个单词一个字符串,存在字符串数组里面??
但是单词的数目不是固定的,没办法通过scanf("%s %s %s")的方式来获取每个单词
#include<stdio.h>,因为你不知道需要几个%s
只能一个字符一个字符的读,遇到空格继续下一个单词

void main()
{
char word[256][65];//最多256个单词,每个单词最长64字节
char (*pp)[65];//数组指针,指向65个字符的指针
char *p=NULL;//字符指针
char temp;
memset(word,NULL,256*65);
for(pp=word,p=*pp;;)
{
temp=getchar();
if(temp=='\n')
{
break;
}
else if(temp==' ')//如果要识别多个空格,多加个变量flag
{
pp++;
p=*pp;
}
else
{
*p=temp;
p++;
}
}
}本回答被提问者和网友采纳
第2个回答  2011-07-19
#include<stdio.h>
void main()
{
while(getchar()!='\n')
{
//将整数放到数组中
}
}
你需要设定一个结束标志。比如上面的,输入回车大括号内的内容就不执行了,输入就结束了。
第3个回答  2011-07-16
读入句子
输出一个一个词
程序如下:
#include <stdio.h>
#include <stdlib.h>
void main(){
char s[200];
char s2[]="All of the problems of the world could be settled easily if men were only willing to
THINK.";
char s3[20];
int i,l;

printf("please enter sentance:\n%s\n",s2);
gets(s);
l = strlen(s);
sscanf(s,"%s",s3);
printf("%s\n",s3);
for (i=1;i<l-1;i++){
if (s[i]==' ' & s[i+1] !=' ') {sscanf(s+i,"%s",s3);printf("%s\n",s3);};
}
}
第4个回答  2011-07-16
#include<stdio.h>
void main()
{
while(getchar()!='\n')
{
//将整数放到数组中
}
}
你需要设定一个结束标志。比如上面的,输入回车大括号内的内容就不执行了,输入就结束了。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网