C++输入一行字符,统计其中单词的个数.各单词之间用空格分隔,空格数可以是多个。
#include
#define MAX_ASCII_COUNT 255
int CharCount[MAX_ASCII_COUNT];
void StatStrCount(char *str)
{
while (*str!='\0')
{
CharCount[*str++]++;
}
}
int main()
{
char *szTest="e f g g g h h i";
StatStrCount(szTest);
for (int i=0;i<MAX_ASCII_COUNT;i++)
{
if (CharCount[i]!=0)
{
printf("字符%c个数是%d:
",i,CharCount[i]);
}
}
return 0;
}
这是以输入30个字符为列子
/*#include
void main()
{
int letter=0,number=0,space=0,other=0;
char i,s[30];
puts("输入30个字符:");
gets(s);
for(i=0;i<30;i++)
{
if(s[i]>='a' && s[i]<='z')
{
letter++;
}
else if(s[i]>='0' && s[i]<='9')
{
number++;
}
else if(s[i]==' ')
{
space++;
}
else
{
other++;
}
}
printf("有%d个字符有%d个数字有%d个空格有%d个其他字符",letter,number,space,other);
}*/
利用C++的string类对象解决。可以先给对象赋一个空格字符串,把从键盘接收的字符追加其后,以方便统一查找。举例如下:
#include "stdafx.h"//If the vc++6.0, with this line.//
#include <string>
#include <iostream>
using namespace std;
int main(int argc,char *argv[]){
string s(" ");//先赋一个空格
int i,w,k;
char ch;
cout << "Please enter a line of text...
";
while((ch=cin.get())==' ' || (ch|0x20)>='a' && (ch|0x20)<='z')//输入非字母和空格结束
s+=ch;
for(k=s.length(),w=0,i=1;i<k;i++)
if(s[i-1]==' ' && (s[i]|0x20)>='a' && (s[i]|0x20)<='z')//空格后跟着字母判为单词
w++;
cout << "
A total of " << w << " word(s).
";
return 0;
}
举例运行结果如下图:
定义一个char s[100];这里开好大随你,只要能存下一个单词即可
因为scanf("%s",s)是读到空格、TAB或者回车都要停下来,所以可以借此来统计个数,空格那些就自动忽略了while(scanf("%s",s)) ans++;
最后输出ans就好了
采用正则表达式区配即可
代码部分: #include<stdio.h>
int main()
{
int count=0;
char temp;
bool letter;
letter=0;//letter=0为在单词里(单词没输入完成),=1为表示进入下个单词
printf("Input words:");
temp=getchar();
while(temp!='\n')
{
if((letter==1)&&(temp==' '))
{
letter=0;
}
else if((temp>='a'&&temp<='z')||(temp>='A'&&temp<='Z')||(temp>='0'&&temp<='9'))
{
if(letter==0)
{
letter=1;
count++;
}
}
temp=getchar();
}
printf("count: %d\n",count);
return 0;
} 效果图: 【酷_酷_币】为您服务...
这个问题不难!可不可以用指针、string?如果不能数组、指针、string,真不知道该咋弄了。
C语言程序设计:输入一行字符,统计出其中单词的个数,个单词之间用空格分...
count++;} } if (str[0] != ' ' && count > 0) { count++;} printf("单词个数为: %d\\n", count);return 0;} 这个程序首先定义了一个大小为100的字符数组str,用于存储用户输入的字符串。通过使用scanf函数读取用户输入的字符串。接着,程序通过遍历字符串来统计单词的个数。程序假设单词...
C语言程序设计:输入一行字符,统计出其中单词的个数,个单词之间用空格分...
楼主请看这里这里 决对好用的程序 include main(){ char str[20];int i=0,j,count=0;printf("请输入要统计的字符以回车结束:");gets(str);while(str[i++]!='0'){ if(str[i]==' '){ i++;while(str[i]==' ')\/\/判断连续空格 { i++;} count++;} } printf("单词书为:%d...
输入一行字符,统计其中的单词的个数,单词之间以单个空格作为分隔符_百 ...
if(c==' ') word=0;\/\/当前字符是空格,所以不是单词,word=0else if(word==0)\/\/当前字符是字母(c!=' '),所以不是空格,并且前面的不是单词(word==0){word=1; \/\/不是空格,并且前面的不是单词,所以是个新单词。word=1; num++; \/\/遇到单词的第一个字母,单词数加一。 \/\/word一直是1只有重新遇到...
c++怎么写一个程序,输入一行英文,统计单词个数,并遇到字母q停止输入
include<iostream.h> include<string.h> void main(){ char c[20];int n=0;while(cin>>c){ if(strchr(c,'q'))break;n++;} cout<<n;} 这样就行了。
统计一行字符中单词的个数
include<stdio.h> int main(){ int i,j=1;char a[100];gets(a);for(i=0;a[i];i++)if(a[i]!=' '&&a[i+1]==' ')j++;printf("有%d个单词\\n",j);}
...一行文本的单词个数:输入一行字符,统计其中单词的个数.个单词之间用...
代码部分: #include<stdio.h> int main(){ int count=0;char temp;bool letter;letter=0;\/\/letter=0为在单词里(单词没输入完成),=1为表示进入下个单词 printf("Input words:");temp=getchar();while(temp!='\\n'){ if((letter==1)&&(temp==' ')){ letter=0;} else if((temp>...
输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
字符数组练习: 。思路:程序中用i作循环变量, num统计单词个数, word作为判别是否是单词的标志,若word = 0 表示未出现单词, 如出现单词word置1。单词数目可由空格出现次数决定(连续若干空格作为出现一次空格;一行开头的空格不统计在内).如果测出某一个字符为非空格,而其前面的字符是空格,则表示"...
输入一行字符,统计其中有多少个单词,单词之间用空格隔开!高手进来解释...
for(i=0;(string[i])!='\\0';i++)\/\/直到字符串的末尾 { if(string[i]==' ')word=0; \/\/如果为空格 那么将知道有单词 else if(word==0) \/\/二重判断直到不为空格 { word=1; \/\/word状态置为1 num++; \/\/累加单词 } } printf("There are %d words in the line....
输入一个字符串,统计单词个数,单词之间用空格分离。(c++编程)
\/\/ 原理是:扫描字符串,如果一个字母前边是空 \/\/ 格的话那么就是一个单词.\/\/ 排除字符串不已空格开始的可能,字符串中可以含有 \/\/ 任意多个空格 if (strWord[0]!=' '){ count++;} for (int i=1; i<len; i++){ if(strWord[i]!=' ' && strWord[i-1]==' '){ count++;} }...
...改错:输入一行字符,以回车符结束,统计其中单词的个。个单词间用空 ...
i++;} count=(count+2)\/2;printf("count=%d\\n",++count);printf("words=%d\\n",++count);} return 0;} int nand(char word,int i){ int flag[1000];int *p=flag;if(word==' '){ (p+i)=0;} else{ (p+i)=1;} if(*(p+i)!=*p){ return 1;} else{ return 0;} } ...