我有一个用于显示 char*
字符串的语句。但是当我尝试 cout
char*
字符串时,我没有看到屏幕上打印任何内容。下面是我的代码:
char* reverseString(char *inputString)
{
int i=0, length=0;
char *reversedString = (char*)malloc(100);
strcpy(reversedString,inputString);
while(inputString[i]!='\0')
{
i+=1;
length+=1;
}
for(int i=0;i<length;i++)
{
reversedString[i]= inputString[length-i];
}
cout<<endl<<"In Function, Reversed String: "<<*reversedString<<endl;
return reversedString;
}
int main()
{
char string[100],*reversedString;
cout<<"Enter string: ";
scanf("%s",string);
cout<<"\nString is: "<<string;
reversedString = reverseString(string);
cout<<endl<<"In Main, Reversed String: "<<*reversedString<<endl;
return 0;
}
最佳答案
这是因为您反转了整个字符串包括终止'\0'
字符。因此,在反转的字符串中,第一个字符是字符串终止符(最后一个字符是原始字符串的第一个字符,因此如果您跳过“反转”终止符,则字符串未终止)。
关于c++ - 无法在我的代码中计算出 char* 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20124858/