题目及要求:
请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“we are happy.”,则输出“we%20are%20happy.”。
思考过程:首先将定义一个指针,用于保存"%20",然后定义一个数组,用于接收从键盘上输入的字符串,边输入边判断,如果是空格,则替换,直至接收完毕。
程序:
/* *实现一个函数,把字符串中的每个空格替换成“%20”。 *例如输入“we are happy.”,则输出“we%20are%20happy.”。 */ #include<stdio.h> #include<stdlib.h> int main() { char *p = "%20"; //将“%20”的位置固定 char *start = p; //定义一个指针,指向字符串的开始位置,以便于循环 char arr[50] = {0}; //定义接收字符串的函数 int flag = 1; int i = 0,k; printf("请输入字符串"); while (flag) { arr[i] = getchar(); //接收字符串 if (arr[i] == ‘ ‘) //如果接收到空格,则进行替换 { for (k = 0; k < 3;k++) //空格替换 { arr[i++] = *p++; } p = start; //指向替换字符串的指针指向初始值 i = i - 1; } if (arr[i] == ‘\n‘) //如果出现换行符,字符串接收完毕 flag = 0; i=i+1; } printf("替换后字符串为:%s\n",arr); system("pause"); return 0; }
欢迎各位大神批评指正!
原文地址:http://xmwen1.blog.51cto.com/10730069/1708407