5. A linguagem C usa funções para realizar a cópia de strings (não usa a função strcpy ()) (contém vários métodos)

5. A linguagem C usa funções para realizar a cópia de strings (não usa a função strcpy ()) (contém vários métodos)

——————————————————————————————
(1) O primeiro método: usar acesso subscrito à matriz (recomendado)

#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;
}

Resultado da execuçãoInsira a descrição da imagem aqui
————————————————————————————
(2) O segundo método: usar a desreferenciação do ponteiro para acessar a matriz (não muito recomendável)

#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;
}

Resultados do
Insira a descrição da imagem aqui

——————————————————————————————
(3) O terceiro método: usar operações de ponteiro, mover ponteiros para acessar elementos de array (muito, muito importante )

#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;
}

Resultado da execução
Insira a descrição da imagem aqui
————————————————————————————
(4) O quarto tipo: uma linha de código (não recomendado)

#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;
}

Resultado da operação
Insira a descrição da imagem aqui
—————————————————————————————
Dia 4 2020-12-17 quinta-feira, ensolarado

Às vezes inquieto como o fogo, às vezes gentil como a água, às vezes tranquilo como viver em uma torre de marfim, e às vezes misturado em um mar de pessoas com facilidade. Às vezes eu chorava e perfurava meu coração, e às vezes ria tremendo. Às vezes pretensioso, às vezes arrogantemente humilde. O que há de errado nisso? O nome da doença é amor.Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/xiaoxiaoguailou/article/details/111306407
Recomendado
Clasificación