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语言:输入一行字符,统计出其中单词的个数,个单词之间用空格分隔,空 ...
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;} ...
c语言输入一行文本输出一行文本
比较简单的方法就是设个全局变量,参考代码如下:include<stdio.h>char str[500];char *GetText(){gets(str);return str;}int main(){puts(GetText());return 0;}
编写一段C语言程序,程序功能是: 输入一行字符,分别统计其中英文字母...
include<stdio.h> int main(){ int zm=0,kg=0,sz=0,qt=0;char c;while((c=getchar())!='\\n')if(c>='A' && c<='Z' || c>='a' && c<='z')zm++;else if(c==' ')kg++;else if(c>='0' && c<='9')sz++;else qt++;printf("英文字母:%d\\n",zm);printf("...
C语言题目: 输入一行字符,统计其中有多少个单词
字符是可使用多种不同字符方案或代码页来表示的抽象实体。例如,Unicode UTF-16 编码将字符表示为16位整数序列,而 Unicode UTF-8 编码则将相同的字符表示为 8 位字节序列,微软的公共语言运行库使用 Unicode UTF-16(Unicode 转换格式,16 位编码形式)表示字符。在UTF-16编码中,一个英文字母字符或...
怎么用c语言输入一行字符并统计个数啊?
一、问题分析:输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。要统计各个类的个数,就要逐个判断是哪个分类的。由于在ASCII码中,数字,大写字母,小写字母分别连续,所以可以根据边界值判断类型。二、算法设计:1、读入字符,直到遇到换行结束。2、对于每个字符,判断是...
c语言编程:输入一行字符,输出该字符串中间的字符
特殊情况我考虑到三种,第一是字符串为单个字符,第二是字符串长度为偶数,第三是先输入了enter。先用strlen求长度,再进行if或其他判断是否要进行余下操作。具体实现不难就不再赘述,需要请追问。
用c语言编程。从键盘输入一行字符,若为小写字母,则转化为大写字母,若...
include <stdio.h> include <ctype.h> int main (void){ char ch[100];int a = 0;gets (ch);while (ch[a] != '\\0'){ if (isupper (ch[a]))ch[a] = tolower (ch[a]);else if (islower (ch[a]))ch[a] = toupper (ch[a]);else ch[a] += 1;a++;} puts (ch);...
C语言编程 1:输入一行字符,求其中数字,英文字母,空格,其他字符的个数...
include <stdio.h> int main(){int i,sz=0,zm=0,kg=0,qt=0;char s[200];gets(s);for(i=0;s[i];i++)if(s[i]>='0'&&s[i]<='9')sz++;else if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z')zm++;else if(s[i]==' ')kg++;else qt++;printf("...
C语言中输入一行文字,找出其中的大写字母、小写字母、空格、数字以及其...
include<stdio.h>#include<string.h>int main(){char string[20],ch;int i,num=0,bigw=0,smallw=0,space=0,others=0;gets(string);for(i=0;(size_t)i<strlen(string);i++){ch=string[i];if(ch>='0'&&ch<='9'){num++;}else if(ch>='A'&&ch<='Z'){bigw++;}else if(...
小白求教C语言,输入一行字符,分别统计出其中字母、空格、数字和其他字...
include<stdio.h> include<conio.h> include<string.h> int main(){ printf("输入一行字符:");char str[100]; \/\/这个地方要改成str[100]这种字符数组,gets函数是将从控制台输入的字符串存到字符数组中的 int i,a=0,b=0,c=0,d=0;gets(str);\/\/控制判断的结束的话,是对于某一个字符...
廖购口服: function long sub(char s[]){long i = 0;long count = 0;for(i=0;i<s.length;i++){if(s[i] == ' '){count++;}if(s[i]=='\0'){count++;return count;}} }
泰和县17774438552: 用c语言编写程序,从键盘上输入一行字符,统计其中有多少个单词,各单词之间用空格分隔 - ?
廖购口服: #include int main(){ int i=0; int j; char buff[512]; scanf("%s",buff); while(buff[i]!='\0') if(buff[i]==' ') j++; printf(" word nr:%d\n",j); return 0; }
泰和县17774438552: C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开?
廖购口服: #include<conio.h> #include<stdio.h> void despace(char *s,int *i) { while(s[*i]==' ') (*i)++; } int main() { int count=0,i=0; char s[50]; char c; gets(s); while((c=s[i])!='\0') { if(c==' ') { despace(s,&i); count++; } i++; } count++; printf("\ncount:%d",count); getch(); return 1; }
泰和县17774438552: 输入一串字符,统计单词个数,单词之间用空格隔开,请问大家用C语言怎么做? - ?
廖购口服: main(){ int j=0 char p[] = "asd dsd dd"; for(int i=0;p[i]!=0;i++) if(p[i]==0x20) j++;printf("nums:%d",j); }以上代码不处理连续空格, 需要扩展
泰和县17774438552: C语言程序设计:输入一行字符,统计出其中单词的个数,个单词之间用空格分隔,空格数可以是多个 - ?
廖购口服: #includemain() {char *a; int i,num=0; gets(a); for(i=0;*(a+i)!='\0';i++) if(*(a+i)==' ') continue; else num++; printf("单词的个数为:%d\n",num); }
泰和县17774438552: (用C程序编写)输入一行字符,统计其中有多少个单词,单词之间用空格分隔开. - ?
廖购口服: bool word=false; int num=0; while(*s){ if(word){ if(*s==' ' || *s=='\t'.....){word=false;num++;} } else{word=true;} s++; } if(word){num++;}
泰和县17774438552: c语言输入一行字符,用函数编程统计其中有多少个单词.假设单词之间以空格分开. - ?
廖购口服: # include <stdio.h># include <string.h> 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(...
泰和县17774438552: C语言程序设计,输入一行字符,统计其中单词的个数,各单词之间用空格分隔,空格数可以是多个.求源程序的详细过程!?
廖购口服: #include<stdio.h> #include <ctype.h> void main() { char s[100]; int n=0,i,in=0; printf("输入字符串:"); gets(s); for(i=0;s[i];i++) { if(isalpha(s[i])) { if(in==0)n++; in=1; } else in=0; } printf("%d个单词\n",n); }
泰和县17774438552: 输入一行字符,统计其中单词的个数.单词间用空格分开,空格可以是多个.用C语言写, 谢谢咯 - ?
廖购口服: 刚写出来的 #include #include void main() {int i,count=0; char str[80]; gets(str);for(i=0;i<80;i++) { if (str[i]=='\0') {if (str[i-1]!=32) count++;else break;} if (str[i]==32) continue; else {if (str[i+1]==32) count++;else continue ;} } printf("The number of words is:%d\n",count); }
泰和县17774438552: C语言程序要读入一行文本,以空格分隔若干个单词,以'.'结束.你要输出这行文本中每个单词的长度. - ?
廖购口服: 好久不编程,忘了,思路应该就是每次读一个字符看是不是空格,不是空格就设个计数器累计 这里计数器可以弄个数组,然后输出就行了,没难度呀 再看看别人怎么说的.