C语言,输入一行文字,单词间以空格分隔,然后分离其中的单词按每行一个单词输出,程序有了,求解释

供稿:hz-xin.com     日期:2025-01-16
改错:C语言,输入一行字符,以回车结束,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个

主要是你的 c!="\0" 和两处 c==" " 的问题,因为c是char 字符类型,而双引号""里面的内容算是字符串,尽管只有1位也还是字符串,跟字符不一样。所以比较不出来。
然后我又把 c!='\0' 这里的 '\0' 改成了 '
',\0我实在是不太懂,因此换成了
,这样每输入一个回车就算是一句。
然后我这里就可以运行了。欢迎LZ改改看~

#include<stdio.h>
int main()

intword,num=0;
char ch;
while((ch=getchar())!='\n')

if(ch=='')
word=0;
else

if(word==0)

num++;
word=1;



printf("%d",num);
return0;


扩展资料:分析
若当前字符=空格
YESﻩ未出现新单词,使word=0,num不累加
NOﻩ前一字符为空格(word=0),新单词出现,使num加1,word=1
前一字符为非空格(word=1),未出现新单词,num不加1*/
其它方法:
#include<stdio.h>
int main()

char string[81];
int i,num=0,word=0;
char c;
gets(string);
for(i=0;((c=string[i])!='\0');i++)
if(c=='')word=0;
elseif(word==0)

word=1;
num++;

printf("thereare%dwordsinthisline.\n",num);
return0;

{ for(;s[i]&&s[i]!=' ';i++)使用循环逐个字母输出每一个空格后的单词,即:字符不为空格或结束符

遇到空格后就 printf("
");换行,从新执行

for(i=0;s[i];i++)

if(s[i]!=' ')

{ for(;s[i]&&s[i]!=' ';i++)

printf("%c",s[i]);

printf("
");

i--;}

直到结束

扩展资料

与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。

参考资料来源:百度百科:c语言



for循环的意思是,如果当前的字符不是字符串结束符'\0'也不是空格的时候就把这个字符打印到屏幕上,直到遇到空格表示打印完了一个单词了,这时候跳出循环打一个回车换行出来,准备开始打下一个单词,但是因为在for循环里i已经自加了,为了不错过下一个单词的第一个字符,所以要把i先减一,这样的话外面的大循环再执行i++的时候就不至于吧下一组单词的第一个字符给错过了。

{ for(;s[i]&&s[i]!=' ';i++)使用循环逐个字母输出每一个空格后的单词,即:字符不为空格或结束符就逐个输出,
遇到空格后就 printf("\n");换行,从新执行
for(i=0;s[i];i++)
if(s[i]!=' ')
{ for(;s[i]&&s[i]!=' ';i++)
printf("%c",s[i]);
printf("\n");
i--;
}
知道结束

C语言,输入一行文字,单词间以空格分隔,然后分离其中的单词按每行一个...
{ for(;s[i]&&s[i]!=' ';i++)使用循环逐个字母输出每一个空格后的单词,即:字符不为空格或结束符 遇到空格后就 printf("\\n");换行,从新执行 for(i=0;s[i];i++)if(s[i]!=' '){ for(;s[i]&&s[i]!=' ';i++)printf("%c",s[i]);printf("\\n");i--;} 直到结束...

C语言,输入一行文字,单词间以空格分隔,然后分离其中的单词按每行一个...
编程序,输入一行文字,单词间以一个或多个空格分隔,然后分离其中的单词,并按每行一个单词依次输出各单词。 #include <stdio.h> void main( ) { char s[81]; int i,j; gets(s); for(i=0;s[i];i++) if(s[i]!=' ') { for(;s[i]&&s[i]!... 展开 { for(;s[i]&&s[i]!=' ';i+...

C语言输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
检查首字符是否不是空格,若是,则计数器加一。使用 for 循环遍历数组,从第二个字符开始。在循环中,检查前一个字符是否为空格,当前字符不为空格时,表示遇到一个单词,计数器加一。循环结束后,s 变量存储了单词总数。最后,使用 printf() 输出统计结果,显示输入字符串的单词数量。

...统计出其中单词的个数,个单词之间用空格分隔,空格数可以是多个_百度...
while(str[i]==' ')\/\/判断连续空格 { i++;} count++;} } printf("单词书为:%d

...统计出其中单词的个数,个单词之间用空格分隔,空格数可以是多个_百度...
为了统计一行字符中的单词个数,我们可以编写一个简单的C语言程序。首先,我们需要定义一个足够大的字符数组来存储输入的字符串。接下来,我们要求用户输入一行字符,并在输入结束时按回车键。程序将统计并输出单词的数量。下面是一个示例程序,用于实现上述功能:include int main() { char str[100];pri...

C语言 数组 输入一行文字,要求将每个单词的首字母由小写改为大写,单词...
include"stdio.h"void main(){int i;char str[100];printf("请输入一个字符串:");gets(str);if(str[0]>=97&&str[0]<=122)str[0]=str[0]-32;for(i=1;str[i]!='\\0';i++){if(str[i-1]==' '&&str[i]>=97&&str[i]<=122)str[i]=str[i]-32;}puts(str);} 希望我...

输入一行字符,统计其中有多少个单词,单词之间用空格隔开!高手进来解释...
void main(){ char string[81]; \/\/定义长度为81 int i,num=0,word=0;char c;gets(string); \/\/输入字符串 for(i=0;(string[i])!='\\0';i++)\/\/直到字符串的末尾 { if(string[i]==' ')word=0; \/\/如果为空格 那么将知道有单词 else if(word==0) \/\/二重判断直...

...编程统计其中有多少个单词。假设单词之间以空格分开。
void panduan(char *p, int *n);void main(){ int a, *m;m = &a;FILE *fp = fopen("words.dat", "w+");char str[100];printf("请您输入字符串:\\n");gets(str);fprintf(fp,"字符串:\\n%s\\n", str);panduan(str, m);printf("%d\\n",a);puts(str);fprintf(fp,"单词个...

输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
include<bits\/stdc++.h> usingnamespacestd;intmain(){ chara;ints=1;scanf("%c",&a);while(a!='.'){ if(a==''||a==',')s++;scanf("%c",&a);} cout<

...统计出其中单词的个数,个单词之间用空格分隔,空格数可以是多个...
include<stdio.h>int main(){char str[1000];int i=0,count=0;gets(str); if(str[0]!=' ') count=1;for(i=1;str[i]!='\\0';i++){if(str[i-1]==' '&& str[i]!=' ')count++;}printf("%d\\n",count);return 0;} ...