gpt4 book ai didi

使用 tolower 时 c++ 字符串的 c++ 格式错误

转载 作者:太空宇宙 更新时间:2023-11-04 16:32:07 25 4
gpt4 key购买 nike

您好,所以我尝试使用一个 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。第二个参数不是以 null 结尾的字符串。

你真的根本不需要调用 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;

关于使用 tolower 时 c++ 字符串的 c++ 格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com