|
|
1鱼币
本人写了一个简单的字符串处理程序,包含两个子函数,但是其中第二个子函数 replaceString(替换字符)运行之后字符串根本没有改变,怀疑是逻辑出错了,但是也找不到具体原因,恳请高手帮忙看一下,谢谢~
- #include <stdio.h>
- #define N 4
- #include <string.h>
- #include <malloc.h>
- void main(void)
- {
- char *p[N];
- char c,d;
- int i=0;
- void maxstring(char **p);
- void replaceString(char **p,char c,char d);
- printf("plese enter %d strings:\n",N);
- for(i=0;i<N;i++)
- {
- p[i]=(char*)malloc(100*sizeof(char));
- scanf("%s", p[i]);
- }
- maxstring(p);
- printf("please enter the char to be replaced by the second char: \n");
- scanf("%c%c",&c,&d);
- replaceString(p,c,d);
- }
- void maxstring(char **p)
- {
- int ii;
- char *pp=(char*)malloc(sizeof *pp);
-
- strcpy(pp,*p);//
-
- for(ii=1;ii<N;ii++,p++)
- if(strcmp(pp,*p)<0)
- strcpy(pp,*p);
- printf("the maximum string is:\n");
- puts(pp);
- }
- void replaceString(char **p,char c,char d) //实现字符d替换字符c
- {
- char *q=(char*)malloc(sizeof *p);
- int i,j;
- for(i=0;i<N;i++)
- {
- for(q=*(p+i),j=0;*q!='\0';q++,j++)
- {
- if(*q==c)
- *(*(p+i)+j)=d;
- }
- puts(*(p+i));
- }
- }
复制代码
|
|