我知道有很多像我这样的问题,但阅读了一些对我没有帮助。可能是因为我是编程新手并且很难使用指针。
作为练习,我尝试在 C++ 中创建一个函数来反转输入的字符串。这是我的功能:
char* reverse(const char* t)
{
int j, k;
char* aString = new char[100];
for(j=0, k=strlen(t)-1; j < strlen(t); j++, k--)
{
aString[j]=t[k];
}
aString[j+1]='\0';
return aString;
}
但是,输入根本不会被反转。我做错了什么?
最佳答案
在 C++ 中,您有一个更好、更干净、更安全、更容易和更具可读性的选项 - std::string
。
这是一个函数 reverse()
的简单示例,它返回一个反转的 std::string
:
void swap(string& str, int index1, int index2) {
char temp = str[index1];
str[index1] = str[index2];
str[index2] = temp;
}
string reverse(string str) {
int size = str.size();
for (int i = 0; i < size / 2; i++)
swap (str, i, size - i - 1);
return str;
}
关于c++ - reverse() 和学习指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18264486/