c语言字符拷贝
① c语言字符串拷贝
数组名是个地址常量,常量是不能修改的,所以++操作不能应用在数组名上
而函数参数里的数组只是一个指针而已,也就是说你调用mystrcpy时,函数会产生两个指针分别指向str1和str2的首地址,这两个指针就可以用++操作了
② c语言请填空以实现字符串拷贝
若有定义语句:
char
s[100],d[100];
int
j=0,i=0;
且s中已赋字符串,请填空以实现字符串拷贝,(注:不得使用逗号表达式)
while
(s[i]){
d[j]=填空;j++}d[j]=0;
填空部分
s[i++]为什么
while
(s[i]){
d[j]=填空;j++}d[j]=0;
是什么意思?
while
的判断条件
为
s[i],那么在循环里i一定要变,不让就是使循环了,又要把s[]的值赋给d[],i还要变只有d[j]=s[++i]和d[j]=s[i++]两个选择了,++i是先加后用,i++是先用后加,用初始条件判断,d[0]=s[0],如果是s[++i]的话
就变成
d[0]=s[1]了不行,只能是s[i++]
第二题是个基本概念
struct
STRU是数据类型的全称,定义的时候当然要用
struct
STRU
t[20]了
PS:这两个题都挺基本的,建议多看看书吧
③ c语言字符串的复制
1、首先需要建立一个新的文件,输入头文件和主函数。
④ 用c语言写一个字符串拷贝函数
*q='\0';
return
*q;
所以函数返回的是‘\0’。然后主函数里面你的printf打印输出的是函数的返回值而不是num这个数组,你把%s后面的参数改成num就行了。
⑤ C语言实现字符串拷贝函数的几种方法
首先是使用库函数
比如下面代码
void ourStrCopy(char S1[] , char S2[]){ strcpy(S1, S2); //该函数还有另一个版本可以按长度截取 }
还有一个函数是memcpy,这个是内存拷贝,原型是
void memcpy(void *dest, const void *src, size_t n); 需要注意的是这个函数第一个和第二个指针都是void型且第二个指针不能被修改,第三个参数是需要拷贝的内存长度按字节记。
然后是用指针引用,注意这个并非赋值,而是引用,这种操作需要注意内存。
char s1[] = "abcdefg";//定义一组字符串char *s2 = s1;//按照指针拷贝字符串
第三种方法就是直接赋值了
void outStrCopy(char s1[] , char s2[]){ int len1 = strlen(s1);//获取第一个字符串的长度 int len2 = strlen(s2);//获取第二个字符串的长度 int len = 0; //字符串总长度 if(len1 <= len2){ len = len2; //选择COPY的长度 }else{ len = len1; } for(int i = 0 ; i < len ; i++){ s1[i] = s2[i]; //实现数据拷贝 }}
⑥ 怎样用字符指针实现两个字符串的拷贝,求c语言程序
int *p *q
将设将q中的复制到p中
while(*q!='