求解c语言程序反转问题

输入一个字符串s长度不超过1000)表示网址,网址以cn或者com结尾,现在需要你将网址中除了www
与域名(cn或者com)以外的部分,以分隔符点(.)为单位,每段单独反转。比如网址s =
"www.baidu.zhidao.com" 反转后的结果为"www.udiab.oadihz.com".请输出反转之后的结果。(网址除了
末尾不会出现包含cn或者com的字母)

下面是一个 C 语言代码示例,它可以按照题目要求反转网址中除了 www 和域名(cn 或 com)以外的部分:

  • 具体过程是:首先使用 scanf 函数读入字符串 s,然后遍历字符串,找到以 cn 或 com 结尾的字符串。找到之后,从起点开始反转,最后输出域名。
#include <stdio.h>
#include <string.h>

#define MAX_LEN 1000

int main() {
char s[MAX_LEN + 1];
scanf("%s", s); // 读入字符串 s

int len = strlen(s);
int start = 0;
for (int i = 0; i < len; i++) {
if (s[i] == '.') {
start = i + 1; // 记录反转的起点
} else if (s[i] == 'c' && s[i + 1] == 'n') { // 找到结尾为 cn 的字符串
for (int j = start; j < i; j++) { // 从起点开始反转
printf("%c", s[i - j + start - 1]);
}
printf(".cn"); // 输出域名
return 0;
} else if (s[i] == 'c' && s[i + 1] == 'o' && s[i + 2] == 'm') { // 找到结尾为 com 的字符串
for (int j = start; j < i; j++) { // 从起点开始反转
printf("%c", s[i - j + start - 1]);
}
printf(".com"); // 输出域名
return 0;
}
}

return 0;
}