아날로그 출력 제한된 문자열 함수 - strncat,strncmp,strncpy

1. 제한된 문자 회전 연결 함수 출력하기strncat
먼저 함수에 대한 테스트 섹션을 제공합니다.
int main()
{
	int k=0;
	char *ret=NULL;
	int len=0;
	char arr1[30]="i love you ";
	char arr2[]="china";
	len=strlen(arr2);
	printf("            :");
	scanf("%d",&k);
	if(k<=len)
	{
		ret=my_strncat(arr1,arr2,k);
	}
	printf("%s
",ret); system("pause"); return 0; }

이른바 제한된 문자열 연결 함수란 디자이너의 뜻에 따라 문자열 연결을 할 수 있는 동시에 제한이 없는 문자열 연결 함수도 있다srtcat의 특징 중 하나는 스스로 자신을 연결할 수 있다는 것이다.
다음은 제한된 문자열 연결 함수strncat의 시뮬레이션 실현
  
char *my_strncat(char * dest,char *src,int len)
{
	char *str1=dest;
	char *str2=src;
	assert(dest);
	assert(src);
	while(*str1 != '\0')  // str1    
	{
		str1++;
	}
	while(len>0 &&(*str2 != '\0'))  //,len         ,  str2 str1
	{
		*str1++=*str2++;
		len--;
	}
	*str1='\0';  //   '\0'
	return dest;
}

   
2. 출력 제한 문자열 비교 함수 시뮬레이션strncmp
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>
int my_strncmp(const char *dest,const char*src,int k)
{
	assert(dest);
	assert(src);
	while(k>0 && (*dest == *src))
	{
		if(*dest == '\0')
			return 0;
		dest++;
		src++;
		k--;
	}
	return *dest-*src;   
}

int main()
{
	int k=0;
	int ret=0;
	char arr1[]="abcdef";
	char arr2[]="xbcdef";
	printf("          :");
	scanf("%d",&k);
	ret=my_strncmp(arr1,arr2,k);
	if(ret == 0)
	{
		printf("%s  %s
",arr1,arr2); } else if(ret > 0) { printf("%s %s
",arr1,arr2); } else { printf("%s %s
",arr1,arr2); } system("pause"); return 0; }

3. 출력 제한 문자열 복사 함수 시뮬레이션strncpy
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>
char *my_strncpy(char *dest,char *src,int k)
{
	char *tmp=dest;
	assert(dest);
	assert(src);
	while(k--)
	{
		*dest++=*src++;
	}
	*dest='\0';
	return tmp;
}
int main()
{
	char *ret=NULL;
	int k=0;
	char arr1[20];
	char arr2[]="i love you";
	printf("             :");
	scanf("%d",&k);
	ret=my_strncpy(arr1,arr2,k);
	printf("%s
",ret); system("pause"); return 0; }

시뮬레이션을 통해 제한된 문자열 연결 함수 구현strncat, 제한된 문자열 비교 함수strncmp와 제한된 문자열 복사 함수strncpy, 나는 문자열의 이 세 가지 함수와 제한을 받는 차이를 더욱 잘 이해했다.제한을 받는 것은 이 함수가 프로그램 디자이너의 취향에 따라 함수-문자를 조작할 수 있는 개수가 존재한다는 것을 설명하는 것이라고 생각한다.

좋은 웹페이지 즐겨찾기