数组与指针的问题,跳出“停止工作”的对话框,请问哪里错误?
程序代码:
#include<stdio.h> #include<math.h> void rep(char *s,char *s1,char *s2) { char *p; for(;*s;s++)/*顺序访问字符串s中的每个字符*/ { for(p=s1;*p&&*p!=*s;p++);/*检查当前字符是否在字符串s1中出现*/ if(*p)*s=*(p-s1+s2);/*当前字符在字符串s1中出现,用字符串s2中的对应字符代替s中的字符*/ } } main() { char s[]="abdfaxcak", t1[]="ac", t2[]="XY"; rep(s,t1,t2); printf("%s",s); }
程序代码:
#include<stdio.h> #include<math.h> void rep(char *s,char *s1,char *s2) { char *p; for(;*s;s++)/*顺序访问字符串s中的每个字符*/ { for(p=s1;*p&&*p!=*s;p++);/*检查当前字符是否在字符串s1中出现*/ if(*p)*s=*(p-s1+s2);/*当前字符在字符串s1中出现,用字符串s2中的对应字符代替s中的字符*/ } } main() { char *s="abdfaxcak", *t1="ac", *t2="XY"; rep(s,t1,t2); printf("%s",s); }
程序代码:
#include<stdio.h> #include<math.h> void rep(char *s,char *s1,char *s2) { char *p; for(;*s;s++)/*顺序访问字符串s中的每个字符*/ { for(p=s1;*p&&*p!=*s;p++);/*检查当前字符是否在字符串s1中出现*/ if(*p)*s=*(p-s1+s2);/*当前字符在字符串s1中出现,用字符串s2中的对应字符代替s中的字符*/ } } main() { char s[]="abdfaxcak", t1[]="ac", t2[]="XY"; char *x, *x1, *x2; x=s,x1=t1,x2=t2; rep(x,x1,x2); printf("%s",s); }
第一三个代码没有问题,第二个的出现问题,跳出停止工作的对话框,请问为什么会出错?
[此贴子已经被作者于2016-11-16 14:11编辑过]