要求:输入字符串A,输入字符串B,将A中的’ 空格’替换成B。
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void replaceChar(char a[],char *rep,int alllength)
{
printf("you input a = %s\n",a);
printf("you input b = %s\n",rep);
if(a == NULL || rep == NULL || alllength <= 0)
{
printf("invlid paragrams");
return;
}
int aLength = strlen(a);
char* p = a;
int count = 0;
while (*p != '\0')
{
if(*p == ' ')
count++;
p++;
}
int rLength = strlen(rep);
int newAllLength = aLength + count*(rLength - 1);
if(alllength < newAllLength)
{
printf("your input is too long,not enough length \n");
return;
}
int oldEndLength = aLength;
while (oldEndLength >= 0 && newAllLength > oldEndLength)
{
if(a[oldEndLength] == ' ')
{
char* bp = rep;
int rl = strlen(rep);
bp += rl - 1;
while (rl-- > 0)
{
a[newAllLength--] = *bp--;
}
}
else
{
a[newAllLength] = a[oldEndLength];
newAllLength --;
}
oldEndLength--;
}
}
void main()
{
char a[20];
char b[5] ;
printf("input a str \n");
gets(a);
printf("input replace\n");
gets(b);
replaceChar(a,b,20);
printf("替换后为 %s\n",a);
system("pause");
}