假设我在一个函数中想把一个字符串中的所有非字符变成#号(先不考虑可不可以改变传入参数),具体void fun(char input[], char output[])。
有一下俩种实现:
void fun1(char input[],.....)
{
...............
for (i=0;i<len_input;i++)
{
if (!isalpha(input[i[))
input[i]=',';
}
void fun2(char input[]....)
{
if(!isalpha(*input))
{
*input = ',';
input++;
}else
input++;
}
俩者都改变了输入参数,但也达到了目的,重大差别是fun2后input就不再指向字符串头部了,不利于下面操作。所以若喜欢fun2形式,可以先char *p = input,然后对
p操作就好了,虽然本质上是一样的!