//实现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;
}