如何解决代码中未声明的错误

时间:2012-03-11 17:53:21

标签: c++

这是一个计算元音数量的代码,但我有错误告诉我没有声明strlength。

#include<iostream> 
#include<string> 
using namespace std; 
int main() { 
   int vow_cnt=0; 
   char name[15]; 
   cout<<"Enter a name"<<endl; 
   cin>>name; 
   for(int i=0;i<strlength(name);i++) 
   { 
      if(name[i] == 'a' || name[i] == 'e'||name[i] == 'i'||name[i] == 'o'||name[i] == 'u') 
      { vow_cnt++; } 
      cout<<"Total Vowels in the string are=>"<<vow_cnt<<endl; 
   } 
}

2 个答案:

答案 0 :(得分:4)

您尚未发布任何代码。无论如何,我相信你正在寻找strlen,而不是strlength。 strlen的定义在cstring标题上:

#include <cstring>

int main() {
    char arr[] = "bleh";
    int length = std::strlen(arr);
}

所以你的固定代码应该是:

#include <iostream> 
#include <cstring> 

using std::strlen; 
using std::cin; 
using std::endl; 
using std::cout; 

int main() { 
   int vow_cnt=0; 
   char name[15]; 
   cout<<"Enter a name"<<endl; 
   cin>>name; 
   for(int i=0;i<strlen(name);i++) 
   { 
      if(name[i] == 'a' || name[i] == 'e'||name[i] == 'i'||name[i] == 'o'||name[i] == 'u') 
      { vow_cnt++; } 
      cout<<"Total Vowels in the string are=>"<<vow_cnt<<endl; 
   } 
}

答案 1 :(得分:2)

什么是strlengthstd::string有一个成员方法length,你应该使用它:

std::string s = "this is the string";
size_t len = s.length();

或许您正在考虑strlen

由于这是C ++,我建议您坚持使用std::string并使用length,而不是const char*strlen

改变这个:

for(int i=0;i<strlength(name);i++) 

for(int i=0;i<strlen(name);i++) 

此外,并非您的代码不会考虑大写元音。