练习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里面提示的却是段错误,本来一看到段错误会想到是数组越界,这一点比较让人迷惑。
本文介绍了一个简单的字符串操作函数,该函数能够将输入字符串的前3个字符移至字符串末尾。通过具体的C语言代码示例展示了如何实现这一功能,并特别注意了避免变量重复定义等常见错误。
2139

被折叠的 条评论
为什么被折叠?



