本题要求编写函数,将输入字符串的前3个字符移到最后。 函数接口定义: void Shift( char s[] ); 其中char s[]是用户传入的字符串,题目保证其长度不小于3;函数Shift须将按照要求变换后的字符串仍然存在s[]里。 输入样例: abcdef 输出样例: defabc #include <stdio.h> #include <string.h> #define MAXS 10 void Shift(char s[]){ char temp[4]; for(int i=0; i<3; i++) { temp[i] = s[i]; } for(int i=0; i<strlen(s)-3; i++) { s[i] = s[i+3]; } for(int i=0; i<3; i++) { s[strlen(s)-3+i] = temp[i]; }} int main() { char s[MAXS]; gets(s); Shift(s); printf("%s\n", s); return 0; }
时间: 2023-06-03 22:03:21 浏览: 61
C语言中常用的字符串处理函数
思路: 先把前3个字符存储在临时数组temp中,然后依次将原字符串后面的字符覆盖到前面,最后把temp中存储的3个字符放到原字符串的末尾。
代码实现如下:
void Shift(char s[])
{
char temp[4];
temp[0] = s[0];
temp[1] = s[1];
temp[2] = s[2];
temp[3] = '\0'; // 注意末尾加上'\0'
for(int i = 3; i < strlen(s); i++)
{
s[i-3] = s[i];
}
for(int i = 0; i < 3; i++)
{
s[strlen(s) - 3 + i] = temp[i];
}
}
阅读全文