计算C+中字符总长度的函数是什么+; 我对C++中字符的总长度的函数有疑问。我发现这个函数: len = strlen(str1);
然而,当我在Xcode中尝试它时,Xcode给了我一个黄色的三角形,表示有错误或遗漏。见下图计算C+中字符总长度的函数是什么+; 我对C++中字符的总长度的函数有疑问。我发现这个函数: len = strlen(str1);,c++,xcode,C++,Xcode,然而,当我在Xcode中尝试它时,Xcode给了我一个黄色的三角形,表示有错误或遗漏。见下图 那么,有人能帮我找到计算总长度的合适函数吗?您尝试调用的函数在cstring(和string.h)中声明,因此您需要 #include <cstring> #包括 但是如果您使用Objective++,请使用std::string类而不是char数组。尝试这样的赋值 size_t len; 而不是 int len; 当strlen返回一个无符号long(size_t)时,将
那么,有人能帮我找到计算总长度的合适函数吗?您尝试调用的函数在
cstring
(和string.h
)中声明,因此您需要
#include <cstring>
#包括
但是如果您使用Objective++,请使用
std::string
类而不是char
数组。尝试这样的赋值
size_t len;
而不是
int len;
当strlen返回一个无符号long(size_t)时,将其放入一个int变量。第一个问题是,无符号long可能是一个非常大的数字。比int大很多。第二个问题是它是无符号的,而int不是。字符串的长度不能为负数,因此也可以安全地取消签名。无符号表示最后一位不会指定负或非负状态 例1:
#include <iostream> //for cout
#include <cstring> //for strlen()
using namespace std; //so we don't have to type std:: all the time
int main(){
char str1 = "Hello, World!";
unsigned long myLength = strlen(str1); // size_t myLength = strlen(str1) would work
cout << "String length: " << myLength << endl;
}
#包括//for cout
#包括//用于strlen()
使用名称空间std//所以我们不必一直输入std::
int main(){
char str1=“你好,世界!”;
无符号长myLength=strlen(str1);//size\u t myLength=strlen(str1)可以工作
无法将len
更改为typesize\u t
此警告与strlen
本身无关。它与您对结果所做的操作有关。strlen
返回类型为std::size\u t
的值。将其分配给类型为int
的变量可能会导致溢出(对于非常大的字符串)。可以通过显式强制转换值来克服此警告:len=static_cast(strlen(str1));
。请注意,strcat(str1,str2);
调用未定义的行为,因为str1
不够大,无法容纳结果(结果字符串长度为11个字符,包括终止的零)。在此处提问之前,请至少尝试阅读并理解诊断消息。发布问题(或答案)时,请,发布代码,而不是sreenshot。然后看起来您有一个警告,因为您将无符号的strlen
结果分配给有符号的int
变量。请使用size\u t
而不是int
。其中没有strlen
,谢谢您的更正。
#include <iostream> //for cout
#include <string>
using namespace std; //so we don't have to type std:: all the time
int main(){
string myString("Hello, World!");
size_t myLength = myString.length(); // see length() in string, it also returns size_t
cout << "String length: " << myLength << endl;
}