我有一个 char 数组,里面有一些特殊字符。我必须用另一个预定义的多个字符替换数组中的这个特殊字符。
假设特殊字符和相应的值如下所示:
< ---> " , @ ---> #
目前我正在比较输入数组中的每个字符的特殊字符,并将其替换为输出数组中的预定义值,如下面的代码片段所示:
char istr[100] = "This is < a input string @ 123";
char ostr[100];
char * p = istr;
int ic = 0;
int oc = 0;
while(*p)
{
if(*p == '<')
{
ic++;
ostr[oc++] = '&';
ostr[oc++] = '#';
ostr[oc++] = '3';
ostr[oc++] = '4';
}
if(*p == '@')
{
ic++;
ostr[oc++] = '&';
ostr[oc++] = '#';
ostr[oc++] = '3';
ostr[oc++] = '5';
}
else
{
ostr[oc++] = istr[ic++];
}
p++;
}
ostr[oc++] = '\0';
printf("%s",ostr);
c中有没有更好的方法或标准函数可以用来用多个字符替换单个字符?