嗨,所以我试图将cstring设为小写,但是当我在最后打印cstring时,我得到了一个奇怪的格式框,其中有些字母应该放在其中。有人有什么想法吗?
#include <string>
#include <iostream>
#include <string.h>
using namespace std;
int main ()
{
int i=0;
char* str="TEST";
char c;
char* cstr = new char[strlen(str) + 1];
while (str[i])
{
c = str[i];
c = tolower(c);
strcat(cstr, &c);
i++;
}
cout << cstr << endl;
return 0;
}
最佳答案
问题是您错误地调用了strcat
。第二个参数不是以空值结尾的字符串。
您真的根本不需要调用strcat
。只需直接写入输出字符串即可:
尝试:
while (str[i])
{
c = str[i];
c = tolower(c);
cstr[i] = c;
i++;
}
cstr[i] = 0;
或等效地:
while(str[i])
{
cstr[i] = tolower(str[i]);
i++;
}
cstr[i] = 0;
关于c++ - 使用Tolower时C++字符串出现C++格式错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5760144/