定义三个字符串,将前二个字符串复制到第三个字符串中,用指针方法做.
不能用字符串复制函数.
void stringcpy(char *str,char *string); main() { char *str1="reyrteuyrtutryu#"; char *str2="fgjhgfk5utry#"; char str3[100]="tyrteyryrty*";
stringcpy(str1,str3); stringcpy(str2,str3); printf("%s",str3); } void stringcpy(char *str,char *string) {
while(*string)string++; while(*str)*string=*str,string++,str++;
}
楼上的我有点不懂,这是我写的,但是有问题,请帮忙看一下:
#include <stdio.h> #include <string.h> void main() { char a[10],b[10],c[20]; //定义三个数组 char *pa,*pb,*pc; //定义三个指针 int i,j; printf("input a:"); scanf("%s",a); printf("input b:"); scanf("%s",b);
pa=a;pb=b;pc=c; for(i=0;i<strlen(a);i++) //i小于数组a的长度,不包括'\0' pa++;pc++; //指针pa每向后移一下,指针pc也向后移一下,从而起到将pa复制到pc的效果,不知道这样理解行不行,我刚学指针,只会用这种笨方法,但是只是感觉到指针指向到那个位置了,那么现在要将字符串a的内容一个一个的复制到字符串c,是不是应该还要加上一句才行啊.请帮忙解答一下.谢谢. for(j=0;j<strlen(b);j++) pb++;pc++; printf("%s\n",c); }
[此贴子已经被作者于2004-06-05 23:08:45编辑过]
#include <stdio.h> #include <string.h> void main() { char a[10],b[10],c[20]; /* 定义三个数组 */ char *pa,*pb,*pc; /* 定义三个指针 */ int i,j;/*定位*/ printf("input a:"); scanf("%s",a); printf("input b:"); scanf("%s",b);
pa=a;pb=b;pc=c; for(i=0;i<strlen(a);i++) /* i小于数组a的长度,不包括'\0' */ *pc++=*pa++; /* 指针pa每向后移一下,指针pc也向后移一下,从而起到将pa复制到pc的效果,不知道这样理解行不行,我刚学指针,只会用这种笨方法,但是只是感觉到指针指向到那个位置了,那么现在要将字符串a的内容一个一个的复制到字符串c,是不是应该还要加上一句才行啊.请帮忙解答一下.谢谢. */
for(j=0;j<strlen(b);j++) *pc++=*pb++; *pc='\0'; printf("%s\n",c); }
我的水平有限,基本上是照你的来的.你改变指针后应该把对应的值赋进去.
#include <stdio.h> void main() { char a[10],b[10],c[20]={'a','b'}; char *pa,*pb,*pc; int i,j; pa=a;pb=b;pc=c; printf("input a:"); gets(pa); printf("input b:"); gets(pb); while(*pc!='\0') {pc++;} while(*pa!='\0') {*pc=*pa;pa++;pc++;} /* */ while(*pb!='\0') {*pc=*pb;pb++;pc++;} /* */ printf("input c:%s\n",c); }