6-2 请编写函数CHG(char *S) (10 分)
请编写函数CHG(char S)实现程序功能: 把S字符串中的所有字符左移一个位置,串中的第一个字符移到最后,之后把已处理的字符串逆转后仍存入原字符数组中
函数接口定义:
在这里描述函数接口。
void CHG(char *s);
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>
#include <string.h>
void CHG(char *s);
int main()
{
char s[100], t[100];
scanf("%s", s);
CHG(s);
printf("%s", s);
return 0;
}
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
abcde
结尾无空行
输出样例:
在这里给出相应的输出。例如:
aedcb
结尾无空行
答案:
void CHG(char *s)
{
int n = strlen(s); //计算字符串长度(不算结尾的'\0')
char *ps, kong = *s; //定义一个存放第一个元素的空变量
for(ps = s; ps < s+n-1; ps++) //把依次把元素向前挪一位
{
*ps = *(ps + 1);
}
*(s+n-1) = kong; //然后把刚才空变量存储的值放到最后
char *pb; //定义一个指针指向字符数组的最后一个元素
for(ps = s, pb = s+n-1; ps < pb; ps++, pb--)
{
char m = *ps; //进行交换
*ps = *pb;
*pb = m;
}
}
|