gpt4 book ai didi

c++ - 为什么 puts() 不打印任何东西

转载 作者:行者123 更新时间:2023-11-27 23:00:14 26 4
gpt4 key购买 nike

#include<iostream>
//#include<stdio.h>
using namespace std;

int main()
{
char mystr[20],rev[20];
int i,c=0;
cout<<"Enter a String: ";
gets(mystr);
for (i=0;mystr[i]!='\0';i++);
for (int j=i;j>=0;j--)
{
rev[c]=mystr[j];
c++;
}
cout<<"Reverse is: ";
puts(rev);
return 0;
}

为什么 puts() 不打印任何东西?如果我使用 for 循环 打印字符串 rev 输出是正确的,但为什么 puts 没有给出正确的输出?

最佳答案

因为 rev 的第一个符号在反向操作后是 \0,并且 puts 将字符串视为以 null 结尾的字符串。因此,它发现第一个字节为空并立即停止。

你可以这样修改你的循环:

for (i = 0; mystr[i] != '\0'; i++);
rev[i] = '\0';
for (int j = i-1; j>=0; j--)
{
rev[c] = mystr[j];
c++;
}

关于c++ - 为什么 puts() 不打印任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28453365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com