输入一行字符,统计其中有多少个a,单词之间用空格隔开,如果a连续出现,则算一个。
输入一行字符,统计其中有多少个a,单词之间用空格隔开,如果a连续出现,则算一个。用数组的知识!
怎么编程??高手教下。。。。谢谢了
[解决办法]
1、遍历,找到a就计数器加1并转到2,否则转到3
2、找第一个不是a的字符,找到就转到1否则转到3
3、结束
[解决办法]
输入的字符串长度有没有限制?还有单词空格隔开是什么意思?会输入很多个字符串么?
[解决办法]
用数组知识不太明确什么概念,一行256以内这样就行:
#include <iostream>
#include <string>
int main(){
char str[256]={0};//根据需要定义字符串buff长度
std::cin.getline(str,256);
int count = 0; //有效计数
int prePos = -2;//记录a上一次出现的位置,初始化需要一个无效值,需要小于-1或者大于256
for ( int i = 0; i != strlen(str); ++i ) {
if ( str[i] == 'a' ) {
if(i-1!=prePos){//前一个如果是a那就不做计数
++count;
}
prePos = i;
}
}
return 0;
}
for ( int i = 0; i != strlen(str); ++i ) {
if(flag&&str[i]!='a')//切换为非'a'字符
{
flag=false;
continue;
}
if(!flag&&str[i]=='a'){//进入'a'字符串中
n++;
flag=true;
}
}
#include <iostream>
#include <string>
int main(){
char str[256]={0};//根据需要定义字符串buff长度
std::cout << "请输入字符串,并按回车结束:" << std::endl
std::cin.getline(str,256);
int count = 0; //有效计数
int prePos = -2;//记录a上一次出现的位置,初始化需要一个无效值,需要小于-1或者大于256
for ( int i = 0; i != strlen(str); ++i ) {
if ( str[i] == 'a' ) {
if(i-1!=prePos){//前一个如果是a那就不做计数
++count;
}
prePos = i;
}
}
std::cout << "您输入的字符串里共有" << count << "个不连续的a"<<std::endl;
return 0;
}
#include <iostream>
#include <string>
int main(){
char str[256]={0};//根据需要定义字符串buff长度
std::cout << "请输入字符串,并按回车结束:" << std::endl;
std::cin.getline(str,256);
int count = 0; //有效计数
int prePos = -2;//记录a上一次出现的位置,初始化需要一个无效值,需要小于-1或者大于256
for ( int i = 0; i != strlen(str); ++i ) {
if ( str[i] == 'a' ) {
if(i-1!=prePos){//前一个如果是a那就不做计数
++count;
}
prePos = i;
}
}
std::cout << "您输入的字符串里共有" << count << "个不连续的a"<<std::endl;
getchar();
return 0;
}