1.统计字符长度(包括空格)
输入一行字符(小于50个字符)
如:Lou jilin(输出:9)
2.字符串复制(包括空格,小于50个字符)
如:Lou jilin(输出:Lou jilin)
3.字符串连接(输入三行字符串,小于50个字符)
如:lou
ji
lin
(输出:loujilin)
4.比较两个字符串大小(输入两行字符,输出大的那个,小于50个字符)
如:Lou jilin
Lou xiaoxiao
(输出:Lou xiaoxiao)
int getStrLen(char a[])
{
int n = 0;
while(*(a++) != 0)
n++;
return n;
}
void strCpy(char dst[],char src[])
{
while((*(dst++) = *(src++)) != 0)
{
//do nothing
}
}
void strLink(char dst[],char addStr[])
{
int nLen = getStrLen(dst);
char *d = dst+nLen;
while((*(d++) = *(addStr++)) != 0)
{
//do nothing
}
}
char *strcmp(char str1[],char str2[])
{
int i=0;
while(*(str1+i) != 0 && *(str2+i)!= 0)
{
if(*(str1+i) == 0)
return str2;
else if(*(str2+i) == 0)
return str1;
else if(*(str1+i) > *(str2+i))
return str1;
else if(*(str1+i) < *(str2+i))
return str2;
}
return str1; //此时两个串相同,任意返回一个都可
}
void main()
{
char a[50] = {0};
char b[50] = {0};
char c[50] = {0};
char d[200] = {0};
printf("请输入第一串字符:");
scanf("%s",a);
int len1 = getStrLen(a); //第一题
printf("\n输入的串长度为:%d\n",len1);
//
strCpy(d,a); //第二题
printf("\n复制串为:%s\n",d);
//
printf("请输入第二串字符:");
scanf("%s",b);
printf("\n请输入第三字符:");
scanf("%s",c);
strLink(d,b);
strLink(d,c);
printf("\n三串合并后为:%s\n",d);//第三题
//
char *p = strcmp(a,b);
printf("第一和第二串中较大的串是:%s",p);
}
4个功能需要自己写函数吗?C里面有现成的函数可以使用。
需要包含头文件#include <string.h>
(1)
char buf[50]={0};
gets(buf); //因为字符串里可能有空格,这里使用gets
int len = strlen(buf);//len就是字符串的长度
(2)
使用strcpy()函数可以实现字符串的复制
char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest
(3)
使用strcat()函数可以实现字符串的拼接
char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾
需要dest的内存空间足够大,能够容纳下两个字符串
(4)
使用int strcmp(char* s1,char* s2)函数可以比较两个字符串的大小,s1大于s2,返回正数,s1等于s2返回0,否则返回负数
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632