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

求解c语言程序反转问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- ShowMeAI 2022-12-17 17:27关注
下面是一个 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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报