gpt4 book ai didi

c++ - cout 一个不在屏幕上打印任何内容的字符串

转载 作者:行者123 更新时间:2023-11-30 03:14:19 24 4
gpt4 key购买 nike

这是一个简单的字符串操作问题。将字符串中的每个字符向右移动 2 个位置。

我使用第二个字符串将字符从第一个字符串复制到第二个字符串中的所需位置。但是 cout 没有打印第二个字符串。如果我尝试像评论中那样打印字符串,它就可以工作。但是为什么cout<<dups行不通?

#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
string dups;
cin>>s;
int k;
cin>>k;
for(int i=0;s[i];i++)
{
int idk = (i+k)%6;
dups[idk] = s[i];
}
dups[6] = '\0';
cout<<dups;


/*for(int i=0;dups[i];i++)
cout<<dups[i]; */
}

输入:黑客 2个输出:erhack

第一个 cout 没有打印任何东西。如果我在评论中喜欢它,它会起作用。

最佳答案

你有undeined behavior无处不在,因为您默认初始化了您的字符串(零大小)并越界访问:

string dups;

一个解决办法是

string s;
cin>>s;
string dups = s;

关于c++ - cout 一个不在屏幕上打印任何内容的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57912321/

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