简单C++问题,,,,请教高手们!!!

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:42:50
给定一个字符串"bicongming0730101128",求解给定的字符串中元音和辅音的个数,要求用函数实现,求元音函数int isVolel(string src)。求辅音函数 int isConsonant(string src),两个函数的返回值分别表示src中元音和辅音的个数。

我的做法:
#include<iostream>
#include<string.h>
using namespace std;
int isVolel(string src)
{
char a;
int i,j=0;
for(i=0;i<sizeof(src);i++) //sizeof(src),我用过strlen(src)代替,但不行...于是我就单独测试下sizeof(src),结果只有"16",怎么回事呢?
{
a=src[i];
if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u')
j++;
}
return j;
}
int isConsonant(string src)
{
char a;
int i,j;
for(i=0;i<sizeof(src);i++)
{
a=src[i];
if(a>='a'&&a<='z')
j++;
}
return j;
}
int main()
{
string src="bicongming0730101128";
int isVolel(string src);
int isConsonant(string src);
cout<<"元音的个数:&q

string里面有个length记录长度的,正确修改如下:

#include<iostream>
#include<string.h>
using namespace std;
int isVolel(string src)
{
char a;
int i,j=0;
for(i=0;i<src.length();i++) //sizeof(src),我用过strlen(src)代替,但不行...于是我就单独测试下sizeof(src),结果只有"16",怎么回事呢?
{
a=src[i];
if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u')
j++;
}
return j;
}
int isConsonant(string src)
{
char a;
int i,j=0;
for(i=0;i<sizeof(src);i++)
{
a=src[i];
if(a>='a'&&a<='z')
j++;
}
return j;
}
int main()
{
string src="bicongming0730101128";
int isVolel(string src);
int isConsonant(string src);
cout<<"元音的个数:"<<isVolel(src)<<endl;
cout<<"辅音的个数:"<<isConsonant(src)-isVolel(src)<<endl;