定义三个字符串,将前二个字符串复制到第三个字符串中,用指针方法做.
不能用字符串复制函数.
定义三个字符串,将前二个字符串复制到第三个字符串中,用指针方法做.
不能用字符串复制函数.
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++;
}
char s[100],s1[50],s2[50];
int i,j;
gets(s1);
gets(s2);
for(i=0;s1[i]!='\0';i++)s[i]=s1[i];
for(j=i,i=0;s2[i]!='\0';i++)s[j++]=s2[i];
s[j]='\0';
楼上的我有点不懂,这是我写的,但是有问题,请帮忙看一下:
#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); }
#include<stdio.h>
main()
{char a[80],b[80],c[80],*p;
int i=0;
scanf("%s",a);scanf("%s",b);
p=c;
while(a[i]!='\0') {*p++=a[i];i++;}
i=0;
while(b[i]!='\0') {*p++=b[i];i++;}
*p='\0';
printf("%s\n",c);
}
[此贴子已经被作者于2004-06-08 18:40:33编辑过]
楼上的,这样是不是好看一点
#include<stdio.h>
main()
{char a[80],b[80],c[80],*p;
int i=0;
scanf("%s",a);scanf("%s",b);
p=c;
while(*p++=a[i++]);
i=0; p--; while(*p++=b[i++]);
*p='\0';
printf("%s\n",c);
}