5. Le langage C utilise des fonctions pour réaliser la copie de chaînes (n'utilise pas la fonction strcpy ()) (contient plusieurs méthodes)

5. Le langage C utilise des fonctions pour réaliser la copie de chaînes (n'utilise pas la fonction strcpy ()) (contient plusieurs méthodes)

——————————————————————————————
(1) La première méthode: utiliser l'accès en indice au tableau (recommandé)

#include<stdio.h>

//第一种方法:使用数组下标访问
void Copy1(char*des,char*src)//des是目标,src是源字符串
{
    
    
	int i;
	for(i=0;src[i]!='\0';i++)//当src[i]出现'\0'时,代表字符串遍历结束
	{
    
    
		des[i]=src[i];//给des[i]赋值
	}
	des[i]='\0';//给复制好的des[i]的结尾加上'\0',代表字符串的结束
}
int main()
{
    
    
	char arr[10]="abcdefg";
	char brr[10];
	Copy1(brr,arr);//调用函数1
	printf("brr是%s",brr);//输出复制好的字符串数组brr
	printf("\n");
	return 0;
}

Résultat de l'exécutionInsérez la description de l'image ici
—————————————————————————————
(2) La deuxième méthode: utiliser le déréférencement du pointeur pour accéder au tableau (pas tout à fait recommandé)

#include<stdio.h>

//第一种方法:使用指针解引用访问(原理:利用p[i]等价于*(p+i))
void Copy2(char*des,char*src)//des是目标,src是源字符串
{
    
    
	int i;
	for (i = 0; *(src+i)!='\0'; i++)//当src出现'\0'时,代表字符串遍历结束
	{
    
    
		*(des+i)=*(src+i);//给des赋值
	}
	*(des+i)='\0';//给复制好的des的结尾加上'\0',代表字符串的结束
}
int main()
{
    
    
	char arr[10]="abcdefg";
	char brr[10];
	Copy2(brr,arr);//调用函数2
	printf("brr是%s",brr);//输出复制好的字符串数组brr
	printf("\n");
	return 0;
}

Résultats de la
Insérez la description de l'image ici

——————————————————————————————
(3) La troisième méthode: utiliser des opérations de pointeur, déplacer des pointeurs pour accéder aux éléments du tableau (très très important )

#include<stdio.h>

void Copy3(char* des, char* src)//利用指针操作,指针自行移动,*******非常非常非常重要********。
{
    
    
	/*while (*src != '\0')
	{
		*des = *src;
		src++;
		des++;
	}*/
	for (; *src != '\0'; src++, des++)//与上面注释代码二选一即可
	{
    
    
		*des = *src;
	}
	*des = '\0';
} 

int main()
{
    
    
	char arr[10]="abcdefg";
	char brr[10];
	Copy3(brr,arr);//调用函数3
	printf("brr是%s",brr);//输出复制好的字符串数组brr
	printf("\n");
	return 0;
}

Résultat de l'exécution
Insérez la description de l'image ici
—————————————————————————————
(4) Le quatrième type: une ligne de code (non recommandé)

#include<stdio.h>

void Copy4(char* des, char* src)
{
    
    
	while (*des++ = *src++);//经典代码,不建议使用//
	//技巧一:int i = 10; int j = i++;
	//技巧二:int i=10;if(i)
}

int main()
{
    
    
	char arr[10]="abcdefg";
	char brr[10];
	Copy4(brr,arr);//调用函数4
	printf("brr是%s",brr);//输出复制好的字符串数组brr
	printf("\n");
	return 0;
}

Résultat de l'opération
Insérez la description de l'image ici
—————————————————————————————
Jour 4 2020-12-17 jeudi, ensoleillé

Parfois agité comme le feu, parfois doux comme l'eau, parfois calme comme vivre dans une tour d'ivoire, et parfois mélangé dans une mer de gens avec facilité. Parfois j'ai pleuré et percé mon cœur, et parfois j'ai ri en tremblant. Parfois prétentieux, parfois d'une humilité arrogante. Quel est le problème avec ça? Le nom de la maladie est l'amour.Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/xiaoxiaoguailou/article/details/111306407
conseillé
Classement