Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何解决代码中未声明的错误_C++ - Fatal编程技术网

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

C++ 如何解决代码中未声明的错误,c++,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<st

这是一个计算元音数量的代码,但我有一个错误,告诉我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; 
   } 
}
#包括
#包括
使用名称空间std;
int main(){
int-vow_cnt=0;
字符名[15];

cout什么是
strlength
std::string
有一个成员方法
length
,您应该使用该方法:

std::string s = "this is the string";
size_t len = s.length();
或者你想的是斯特伦

这是C++,我建议您坚持<代码> STD::String < /代码>,使用<代码>长度<代码>,而不是<代码> const char */COD>和斯特伦< /C> > /P> 更改此项:

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

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

#include <cstring>

int main() {
    char arr[] = "bleh";
    int length = std::strlen(arr);
}
#包括
int main(){
字符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; 
   } 
}
#包括
#包括
使用std::strlen;
使用std::cin;
使用std::endl;
使用std::cout;
int main(){
int-vow_cnt=0;
字符名[15];

库提斯。看看那段代码,似乎
strlength
的声明确实丢失了。我相信问题出在第3行。@KonradRudolph你可以看到整个程序是由
strlength
重复0次组成的。不知道你是怎么得到-1的。我比Luchian更喜欢你的答案。#包括#包括使用命名空间的td;int main(){int vow_cnt=0;char name[15];coutt这是我的代码,但我尝试上传我无法KK strlength有什么问题?嗯,是吗?他肯定否决了,因为他认为strlen不在std名称空间中。@Hams问题是没有
strlength
这样的东西。这两个答案都给你一个可行的解决方案。
#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; 
   } 
}