c++ - 无法在我的代码中计算出 char* 字符串

标签 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;
}

最佳答案

这是因为您反转了整个字符串包括终止'\0' 字符。因此,在反转的字符串中,第一个字符是字符串终止符(最后一个字符是原始字符串的第一个字符,因此如果您跳过“反转”终止符,则字符串未终止)。

关于c++ - 无法在我的代码中计算出 char* 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20124858/

相关文章:

windows vscode终端中的javac Foo.java && java Foo不工作

C# 将小数转换为指定格式的字符串

c++ - 抽象类的 shared_ptr vector 到拷贝 vector

c++ - 解析一个位域参数,如何解析unsigned long中的 "discard"位?

windows - 是否有(免费的)Windows 测试/虚拟打印设备?

arrays - PowerShell,Get-WinEvent -FilterHashTable ID 和数组的奇怪行为

c++ - 读取文件并添加到数组 char

c++ - 使用 QObject::connect() 将函数连接到信号时,类型签名是否重要?

java - 对于两个整数用户输入,如何检测第一个输入是否传递了字符串?

c# - 我如何比较 byte[] 和字符串?