wudiaong @ 2019-07-28 21:12:34
#include<bits/stdc++.h>
using namespace std;
string a;
int main()
{
int n;
cin>>n;
cin>>a;
for(int i=1;i<=n;i++)
{
for(int j=0;a[j]!='\0';j++)
{
if(a[j]>='a'&&a[j]<='y') a[j]++;
else if(a[j]=='z') a[j]='a';
}
}
cout<<a<<endl;
return 0;
}
大佬帮忙看一下,查一下错。
by XMK_萌新 @ 2019-07-28 21:21:56
第一似乎C++给的'/0'
这种说法
第二并不能把字符串的单个字符这样修改
by bigju @ 2019-07-28 21:22:28
大于等于z吧.....
by XMK_萌新 @ 2019-07-28 21:22:32
还有你不应该一次循环一个输出吗
by 吾皇 @ 2019-07-28 21:24:53
@吴桐宇 你这段代码没有问题啊...你的40分是因为那个j从1开始,而string是从0开始的
by wudiaong @ 2019-07-28 21:26:35
@徐铭凯萌新 我记得直接输出n次以后的吧
by 吾皇 @ 2019-07-28 21:27:01
@徐铭凯萌新 一般都用<s.size(),但这样应该是可以的;而且string可以对s[0]到s[s.size()-1]中的任何字符进行更改
by 吾皇 @ 2019-07-28 21:28:01
@吴桐宇 其实你有一层循环是不需要的可以优化一下QAQ
by wudiaong @ 2019-07-28 21:28:34
@徐铭凯萌新 你试试这段代码:
#include<bits/stdc++.h>
using namespace std;
string a="abc";
int main()
{
a[0]='g';
cout<<a<<endl;
return 0;
}
by wudiaong @ 2019-07-28 21:30:49
@ 吾皇 谢谢大佬 AC了
by 吾皇 @ 2019-07-28 21:31:56
emmm