1 //25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
2 #include
3 #include
4 #define SIZE 100
5 char compare_string_len(char *str1,char *str2,int size)
6 {
7 printf("please two string:\n");
8 scanf("%s",&str1,&str2);
9 if(strlen(str1)>=strlen(str2))
10 {
11 return *str1;
12 }
13 else
14 {
15 return str2;
16 }
17 / while(*m)
18 {
19 i++;
20 *m++;
21 }
22 while(*n)
23 {
24 j++;
25 *n++;
26 }
27 if(i>=j)
28 {
29 m=str1;
30 }
31 if(i
33 m=str2;
34 }
35 return *m;
36 */
37 }
38 int main(void)
39 {
40 char str1[SIZE],str2[SIZE];
41 compare_string_len(str1,str2,SIZE);
42 printf("%s\n",str1,str2);
43
44 }
scanf("%s",&str1,&str2);
改成
scanf("%s", str1);
scanf("%s", str2);
scanf后面填的是接受输入的变量地址,str1和str2就是指针了,不需要&
#include<stdio.h>
#include <stdlib.h>
char* compare_string_len(char* s1, char* s2)
{
int i;
char* p;
for (i = 0;; i++)
{
if (s1[i] == NULL && s2[i] == NULL)
{
p = s1;
break;
}
if (s1[i] == NULL)
{
p = s2;
break;
}
if (s2[i] == NULL)
{
p = s1;
break;
}
}
return p;
}
int main() {
char s1[] = "123";
char s2[] = "abcd";
char* p;
p = compare_string_len(s1, s2);
printf("%s", p);
}
不知道你这个问题是否已经解决, 如果还没有解决的话: