0

我有一个 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中有没有更好的方法或标准函数可以用来用多个字符替换单个字符?

4

0 回答 0