【发布时间】:2018-03-11 05:06:06
【问题描述】:
将一个字符串的每个值都分配给另一个字符串后,我无法打印该字符串。如何克服这个问题
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, k;
string s = "Nikhil", shiftedS;
n = s.length();
cin >> k;
for (int i = 0; i < n; i++)
{
int idx = (i + k) % n;
shiftedS[idx] = s[i];
}
shiftedS[n] = '\0';
for (int i = 0; i < n; i++)
cout << shiftedS[i] << " ";
cout << shiftedS; // I am unable to print when I try like this.
return 0;
}
【问题讨论】:
-
访问索引
>= s.length()处的元素是未定义的行为。 -
另外——C++ 字符串不会特别对待
\0。 -
#include
使用命名空间标准; int main() { string s="Nikhil",shiftedS;整数 n,k; k=s.length(); cout>k; for(int i=0;i -
转换字符串的字符
-
那你必须先
resize它。另外 -- edit 如果您想添加更多信息,请提出问题。