gpt4 book ai didi

c++ - 将 c 样式字符串传递给函数 C++

转载 作者:行者123 更新时间:2023-11-28 03:25:00 25 4
gpt4 key购买 nike

我写了一个函数来反转一个c风格的字符串,如下所示

void reverse1(char* str) {
char* str_end = strchr(str, 0);
reverse(str, str_end);
}

并使用这个函数来打印反转的字符串

void print(char* str) {
for (int i=0; i!=sizeof(str); ++i) {
cout << int(*(str+i)) << '\t';
}
cout << endl;
}

反转后打印结果为:103 110 105 114 116 115 0 0会多出一个0。我不知道这就是为什么。希望可以有人帮帮我。非常感谢!

最佳答案

表达式 sizeof(str) 在 64 位平台上的结果为 8。因此,您在标准输出中得到 8 个数字。

当你用 C++ 编程时,你应该尝试使用 std::string。如果你坚持使用 C 风格的字符串,你可以将输出写成:

void print(char* str) {
for (int i=0; i<=strlen(str); ++i) {
cout << int(*(str+i)) << '\t';
}
cout << endl;
}

void print(char* str) 
{
do {
cout << int(*str) << '\t';
} while (*str++);
cout << endl;
}

关于c++ - 将 c 样式字符串传递给函数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14352265/

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