输入两个字符串str1和str2(字符数均小于10),定义两个函数c

输入两个字符串str1和str2(字符数均小于10),定义两个函数char *uf_strcat(char *str1,char *str2)和int uf_strlen(char *str1),实现连接字符串和计算字符串长度的功能,并输出。
【样例输入】abc
defg
【样例输出】abcdefg
3
PS:用的dev C++编。。

#include <stdio.h>
char *uf_strcat(char *str1,char *str2)
{char *p;
 for(p=str1;*str1;str1++);
 for(;*str1++=*str2++;);
 return p;
}
int uf_strlen(char *str1)
{int n=0;
 for(;*str1++;n++);
 return n;
}
int main()
{char s1[20],s2[20];
 gets(s1);
 gets(s2);
 printf("%s\n%d\n",uf_strcat(s1,s2),uf_strlen(s1));
 return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-23


实际上这个题目就是要手动实现strcmp这个函数的功能,在面试中可能会遇到类似的问题(strcpy等)

#include <stdio.h>
// 当s1 > s2 的时候,会返回正数
// 当s1 < s2 的时候,会返回负数
// 当s1 == s2 的时候,会返回 0
int Mystrcmp(char *s1, char *s2)
{
if (s1 == NULL || s2 == NULL) // 字符串为空 
return 0;
while(*s1 == *s2 && *s1 != '\0')
{
s1++;
s2++;
}
return *s1 - *s2;
}
// 给了一个测试例子~可以自己写几个例子测试一下。
int main()
{
printf("%d\n", Mystrcmp("ab", "aa"));
}




相似回答