小甲鱼 C语言 22课指针和数组

//实现strlen函数的功能

#include 

int main(void){
	char str[100];
	int i;
	
	printf("请输入一个字符串:");
	fgets(str,100,stdin);
	
	for(i=0;str[i]!='\0';i++){
	}
	
	printf("你总共输入了%d个字符!\n",i-1);
	
	return 0;
} 

//包含中文的
#include  

int main(void){
	char str[100];
	int i,cot=0;
	
	fgets(str,100,stdin);
	
	for(i=0;str[i]!='\0';i++){
		if((int)str[i]<0){
			i++;
		}
		cot++;
	} 
	
	printf("你总共输了%d个字符!\n",cot-1);//fgets读取了回车所以最后要-1 
}
//实现strcpy函数

#include 

int main(void){
	char str1[100];
	char str2[100];
	char *p1=str1;
	char *p2=str2;
	
	printf("请输入一个字符串到str1中:"); 
	fgets(str1,100,stdin);
	
	printf("开始拷贝str1的内容到str2中...\n"); 
	while(*p1!='\0'){
		*p2++=*p1++;
	}
	
	printf("拷贝完毕!\n现在,str2的内容时:%s\n",str2);
	
	return 0;
} 

//加入中文的strncpy函数
#include 

int main(void){
	char str1[100];
	char str2[100];
	char *p1=str1;
	char *p2=str2;
	int n;
	
	printf("请输入一个字符串到str1中:");
	fgets(str1,100,stdin);
	
	printf("请输入需要拷贝的字符个数:");
	scanf("%d",&n);
	
	printf("现在开始拷贝str1的内容到str2中...\n");
	while(n-- && *p1!='\0'){
		if((int)*p1<0){
			*p2++=*p1++;
		}
		*p2++=*p1++; 
	}
	
	printf("拷贝完毕!\n现在,str2的内容是:%s\n",str2);
	
	return 0;
} 

//实现strcat函数
#include 

int main(void){
	char str1[100];
	char str2[100];
	char *p1=str1;
	char *p2=str2;
	int i;
	
	printf("请输入第一个字符串:");
	fgets(str1,100,stdin);
	printf("请输入第二个字符串:");
	fgets(str2,100,stdin);
	
	while(*p1++!='\0')	;
	
	p1-=2;
	while(*p2!='\0'){
		*p1++=*p2++;
	}
	
	printf("连接后的结果是:%s\n",str1);
	
	return 0; 
} 

//实现strncat 函数(包含中文)

#include 

int main(void){
	char str1[100];
	char str2[100];
	char *p1=str1;
	char *p2=str2;
	int n;
	
	printf("请输入第一个字符串:");
	fgets(str1,100,stdin);
	
	printf("请输入第二个字符串:");
	fgets(str2,100,stdin);
	
	printf("请输入需要连接的字符个数:");
	scanf("%d",&n);
	
	while(*p1++!='\0');
	
	p1-=2;
	while(n-- && &p2!='\0'){
		if((int)*p2<0){
			*p1++=*p2++;
		}
		*p1++=*p2++;
	}
	*p1='\0'; 
	printf("连接后的结果是:%s\n",str1);
	
	return 0; 
} 

//实现strcmp函数
#include 

int main(void){
	char str1[100];
	char str2[100];
	char *p1=str1;
	char *p2=str2;
	int index=1,flag=0;
	
	printf("请输入第一个字符串:");
	fgets(str1,100,stdin);
	
	printf("请输入第二个字符串:");
	fgets(str2,100,stdin);
	
	while(*p1!='\0' || *p2!='\0'){	//这里应该是||比较好,不要写&&
									//如果不是因为fgets最后还有个回车 
		if(*p1++!=*p2++){
			flag=1;
			break;
		}
		index++;
	}
	
	if(flag){
		printf("两个字符串不完全相同,第%d个字符串出现了不同!\n",index);
	}
	else{
		printf("两个字符串完全相同!\n");
	}
	
	return 0; 
} 

//包含中文的版本

#include 

int main(void){
	char str1[100];
	char str2[100];
	char *p1=str1;
	char *p2=str2;
	int index=1,flag=0;
	
	printf("请输入第一个字符串:");
	fgets(str1,100,stdin);
	
	printf("请输入第二个字符串:");
	fgets(str2,100,stdin);
	
	int n;
	printf("请输入需要比较的字符个数:");
	scanf("%d",&n);
	
	while(n-- && (*p1!='\0' || *p2!='\0')){
		if((int)*p1<0){
			if(*p1++!=*p2++){
				flag=1;
				break;
			}
		}
		if(*p1++!=*p2++){
			flag=1;
			break;
		}
		index++;
	}
	 
	if(flag){
		printf("两个字符串不完全相同,第%d个出现不同!\n",index);
	} 
	else{
		printf("两个字符串完全相同!\n");
	}
	
	return 0;
} 

你可能感兴趣的:(c语言)