假设有字符串:“wecreateourowndemons”;
*要求编程实现如下功能:
将字符串中第一个字母o两侧的内容交换,并删除这个o;继续找到下一个字母o,交换其两 侧的内容,并删除这个o;重复这个操作,直到字符串中不存在o为止。
1、示例:
输入原字符串:wecreateourowndemons
中间的处理过程:第一次操作后:urowndemonswecreate
第二次操作后:wndemonswecreateur
第三次操作后:nswecreateurwndem
输出结果:nswecreateurwndem
#include <stdio.h>
#include <string.h>
int main()
{
char str[80];
char s[80];
char *p;
printf("请输入字符串:");
scanf("%s", str);
while(NULL != (p = strchr(str, 'o'))) {
*p = 0; // str所指向的字符串的左半段和p+1所指向的字符串的右半段
strcpy(s, p+1);
strcat(s, str);
strcpy(str, s);
}
//输出结果
printf("%s\n", str);
return 0;
}
假设有字符串:“we create our own demons!”;
**要求编程实现如下功能:
将字符串中第一个字母o两侧的内容交换,并删除这个o;继续找到下一个字母o,交换其两 侧的内容,并删除这个o;重复这个操作,直到字符串中不存在o为止。
2、示例:
带空格的输入:we create our own demons!
中间的处理过程:第一次操作后:ur own demons!we create
第二次操作后:wn demons!we create ur
第三次操作后:ns!we create ur wn dem
输出结果:ns!we create ur wn dem
#include <stdio.h>
#include <string.h>
int main()
{
char str[80];
char s[80];
char *p;
printf("请输入字符串:");
gets(str);
while(NULL != (p = strchr(str, 'o'))) {
*p = 0; // str所指向的字符串的左半段和p+1所指向的字符串的右半段
strcpy(s, p+1);
strcat(s, str);
strcpy(str, s);
}
printf("%s\n", str);
return 0;
}