不能在我的代码中cout char * string

时间:2013-11-21 15:22:18

标签: c++ windows string char

我有一个显示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;
}

2 个答案:

答案 0 :(得分:5)

这是因为你反转整个字符串,包括终止'\0'字符。所以在反向字符串中,第一个字符是字符串终止符(最后一个是原始字符串的第一个字符,所以如果你跳过“反转”终止符,那么字符串就会被终止)。

答案 1 :(得分:1)

使用forreverse函数中开始i = 1循环。然后再添加一条语句reversedString[i] = '\0',以便在\0附加字符串。

相关问题