如何不用字符串函数,实现字符串的求长度,复制,比较,连接操作?
1、不用strlen函数求字符串长度
/*
说明:不用字符串函数strlen求字符串长度。
思路:1.首先定义一个字符串数组,2.为字符串赋值,
3.因为strlen函数是到'\0'截止计算长度的,
且不知道字符串的长度(循环次数未知),
所以我们用while循环语句,
并且用'\0'作为循环结束条件。
*/
#include<stdio.h>
int main()
{
char str[100];
printf("请输入一段字符串:\n");
scanf("%s",str);//输入字符串str
int i=0;
while(str[i]!='\0')//循环条件
{
i++;
}
printf("字符串长度为:%d\n",i);
}
测试:
2、不用strcpy函数复制字符串
#include<stdio.h>
int main()
{
char s1[100]="abcdef";
char s2[100]="hello";
int i=0;
while(s2[i])
{
s1[i]=s2[i];
i++;
}
s1[i]='\0';
printf("复制后字符串s1为:%s",s1);
}
测试:
3、不用strcmy函数比较字符串
#include<stdio.h>
int main()
{
char s1[100];
char s2[100];
int i=0;
printf("请输入字符串s1:\n");
gets(s1);
printf("请输入字符串s2:\n");
gets(s2);
while(s1[i]!='\0')
{
if(s1[i]-s2[i]!=0)
{
printf("字符串s1和字符串s2不相等\n");
return 0;//如果不相等结束程序
}
i++;
}
printf("字符串s1和字符串s2相等\n");
}
测试:
4、不用strcat函数连接字符串
#include<stdio.h>
int main()
{
char s1[100];
char s2[100];
int i=0,j=0;
printf("请输入字符串s1:\n");
gets(s1);
printf("请输入字符串s2:\n");
gets(s2);
while(s1[i])
{
i++;
}
while(s2[j])
{
s1[i]=s2[j];
i++;
j++;
}
printf("连接后为%s",s1);
}
测试: