问题描述:给定一个字符串“i am a student”,编写程序使得该字符串中的空格都被‘##’代替。
思路就是定义一个新数组,遍历原数组,如果不等于‘ ’,则将原数组的元素搬到新数组;当等于‘ ’时,
aim[j++] = '#';
aim[j++] = '#';
i++;
等价于
aim[j] = '#';
j++;
aim[j] = '#';
j++;
i++;
代码如下:
#include<stdio.h>
char* repalce(char* str , char * aim, int len)
{
int i = 0; //遍历str
int j = 0; // 遍历aim
while(i < len)
{
if(str[i] != ' ')
{
aim[j++] = str[i++];
}
else //是空格
{
aim[j++] = '#';
aim[j++] = '#';
i++;
}
}
return aim;
}
int main()
{
char str[] = "i am a student";
char aim[256] = {0};
int len = sizeof(str) / sizeof(str[0]);
repalce(str,aim,len);
printf("%s",aim);
return 0;
}
运行结果:
i##am##a##student