gpt4 book ai didi

c++ c-string topper函数有时会在最后输出随机数

转载 作者:行者123 更新时间:2023-11-30 01:42:16 25 4
gpt4 key购买 nike

我需要使用指向函数的字符数组。在函数中,我需要它使输入全部为大写字母。我想我会使用 toupper 函数,它对某些输入非常有效,但是当我输入某些单词时,我最终会在输出末尾得到奇怪的符号/数字(请参阅输出)。有帮助吗?

代码

#include <iostream>
#include <cstring>
#include <string>

using namespace std;

void allUppercase(char*);

const int SIZE = 50;

int main()
{
char words[SIZE];

cout << "Please enter your text : ";
cin.get(words, (SIZE-1));

cout << "The keyboard input was \"" << words << "\".\n";
cout << "\nThe uppercase output is \"";
allUppercase(words);
cout << "\".\n";

return 0;
}

// outputs the string entered in uppercase letters
// (Use a character array to store the string)
void allUppercase(char *ch)
{
char temp[SIZE];

for (int i=0; i < SIZE; i++)
{
if (ch[i] != '\0')
temp[i] = toupper(ch[i]);
else
break;
}
cout << temp;
}

示例输出

output

最佳答案

你忘记了 null 终止 temp

void allUppercase(char *ch) {
char temp[SIZE];

for (int i=0; i < SIZE; i++) {
if (ch[i] != '\0') {
temp[i] = toupper(ch[i]);
} else {
temp[i] = '\0';
break;
}
}
cout << temp;
}

关于c++ c-string topper函数有时会在最后输出随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39865382/

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