题目:将 字 符 串 中 的 空 格 替 换 成 “%020” , 例 如 “hello world how ”
->”hello%020%020%020world%020%020%020how%020%020%020%020”
遍历两次,第一次数出空格数,申请新的字符串,再次遍历进行替换
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
void Space_Sub()
{
char ch[MAX];
char *p;
while (gets_s(ch,MAX)!=NULL)
{
int iSpace = 0;
p = ch;
while (*p)
{
if (*p== ' ')
iSpace++;
p++;
}
char *new_ch = (char *)malloc(sizeof(ch) + 3 * iSpace * sizeof(char));
p = ch;
char *pnew = new_ch;
while (*p)
{
if (*p != ' '&&*p)
{
*pnew = *p;
++p;
++pnew;
}
else
{
if (*p == ' ')
{
*pnew = '%';
*(pnew + 1) = '0';
*(pnew + 2) = '2';
*(pnew + 3) = '0';
pnew += 4;
p++;
}
}
*pnew = 0;
}
puts(new_ch);
}
}
int main()
{
Space_Sub();
system("pause");
}