【发布时间】:2020-04-17 19:02:34
【问题描述】:
所以我想在 c++ 中做最简单的事情,反转一个字符串(存储新字符串)然后打印它
我的代码是:
char a[size] , reverse[size];
strcpy(a,"dlow olleh " );
for (int i = 0 ; i <= strlen(a); i++) {
reverse[i]= a[strlen(a)-i];
}
cout << reverse ;
我必须注意,当 cout
【问题讨论】:
-
你可能忘记了
reverse中的空终止符 -
我是 c++ 新手,一般是编程,您介意详细说明一下吗?
-
C 风格的“字符串”(
char数组)有一个空终止符\0,它指示字符串的结束位置。再三考虑,您的反转代码将该空终止符放在reverse的第一个字符处,因此当您尝试打印它时,它会立即到达“结尾” -
你真是个天才
-
@YarinShani 请注意,
std::strlen()是一个从char*开始搜索直到找到\0'的函数 - 每次调用它。在你的例子中有很多电话。建议:在循环前调用一次,将结果存储并在循环中使用。
标签: c++ string for-loop reverse c-strings