-
可以使用 getline 读取带有空格的字符
一行要解决,你在这里只读一个字符串。
具体如下:
计算字符串中的字数。
#include
#include
usingnamespace
std;int
fun(string
x);int
main()inta;
string
str="thisis a
strng";
cout<<"在一行中输入字符串:"<>noskipws>>str;
getline(cin,str);
a=fun(str);
cout<<"字数是"return
intfun(string
x)coutfor(b=1;b<100000;b++)if(x[b]=='\0')
if(x[b-1]!=32)
c++;cout<<"结束统计,";
break;
if((x[b]==32)&&x[b-1]!=32))c=c+1;
returnc;
-
#include ""
main()
printf("此行中有 %d 个单词。 ",num);
原理很简单:
判断每个字符,如果是空格,则将变量字标记为0,如果不是空格则判断该字是否为0(即判断前面是否有空格),如果有空格字,则加1,然后将字变量重置为0。 就这样重复一遍,知道句子的结尾。
-
根据英语书写惯例,每个单词前后都会有一个空格。 因此,您可以根据空格划分单词。
但是,由于一行中可能有多个空格,因此不可能只计算空格的数量,因此需要更复杂的算法。
1. 算法设计
核心思想是通过一个标志来确定一个词的开头,每出现一个词的开头,就意味着有一个词。 这样,出现的字数被计算在内,得到总字数。
1. 初始标志为 1;
2. 遍历字符串。
3.对于每个字符,如果出现非空格字符且标志为1,则为单词的开头,计数器累加。 同时,将标志分配给 0。
4.当标志为0时,如果出现空格,则表示前一个单词已结束,并将标志设置为1。
5. 遍历结束后输出结果。
#include
int func(char *s) 计算字数统计函数。
else if(s[i] == ' '上一个词结束。
flag = 1;
return n;返回结果。
int main()
-
请问,这可能吗?
#include ""
main()
宦官之后的曹操,虽然家境富裕,虽然自称是汉朝开国元勋曹神的后裔,但实际上远不如“四三皇子”的袁家,甚至不如四太微的杨家。 在东汉晚期,当家族血统的观念非常强烈时,很难得到学者和家族的支持。 因此,曹操虽然拥有强大的军事力量,但他的政治基础并不牢固。 >>>More