练习8-8 移动字母 (10 分)
本题要求编写函数,将输入字符串的前3个字符移到最后。
函数接口定义:
void Shift( char s[] );
其中char s[]
是用户传入的字符串,题目保证其长度不小于3;函数Shift
须将按照要求变换后的字符串仍然存在s[]
里。
void Shift( char s[] ){
char char1 = s[0];
char char2 = s[1];
char char3 = s[2];
int i = 0;
for(i=3;s[i] != '\0';i++){
s[i-3] = s[i];
}
s[i-3] = char1;
s[i-2] = char2;
s[i-1] = char3;
}
Notice: 这章比较简单,本来是不会写博客的,但是犯了一个找了半天的错误。
int i = 0;
for(int i=3;s[i] != '\0';i++){
s[i-3] = s[i];
}
重复定义i,但是在pta里面提示的却是段错误,本来一看到段错误会想到是数组越界,这一点比较让人迷惑。