编写函数fun,功能是: 比较两个字符串,将长的那个字符串的首地址作为函数值返回。
时间: 2023-06-24 15:04:27 浏览: 96
以下是实现该功能的函数fun的C语言代码:
```c
char* fun(char* str1, char* str2) {
int len1 = 0, len2 = 0;
// 计算两个字符串的长度
while (*(str1 + len1) != '\0') {
len1++;
}
while (*(str2 + len2) != '\0') {
len2++;
}
// 比较两个字符串的长度并返回较长的字符串的首地址
if (len1 >= len2) {
return str1;
} else {
return str2;
}
}
```
该函数接受两个字符串指针参数,首先用while循环计算两个字符串的长度,然后比较两个字符串的长度,返回较长的字符串的首地址。
相关问题
请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
好的,我会编写这个函数。以下是代码:
```
char* fun(char* str1, char* str2) {
int len1 = 0, len2 = 0;
char* p1 = str1;
char* p2 = str2;
// 计算第一个字符串的长度
while (*p1 != '\0') {
len1++;
p1++;
}
// 计算第二个字符串的长度
while (*p2 != '\0') {
len2++;
p2++;
}
// 返回较长的字符串
if (len1 >= len2) {
return str1;
} else {
return str2;
}
}
```
这个函数接受两个字符指针作为参数,分别表示需要比较长度的字符串。函数首先使用两个指针来计算每个字符串的长度,然后比较两个长度,最后返回较长的字符串。如果两个字符串的长度相同,则返回第一个字符串。注意,本函数没有调用C语言提供的求字符串长度的函数。
请用c语言编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
好的,我知道了您的要求。以下是函数fun的C语言实现:
```
#include <stdio.h>
#include <string.h>
char *fun(char *str1, char *str2) {
int len1 = 0, len2 = 0;
char *result;
while (*str1++ != '\0') len1++;
while (*str2++ != '\0') len2++;
if (len1 >= len2) {
result = str1 - len1 - 1;
} else {
result = str2 - len2 - 1;
}
return result;
}
int main() {
char str1[] = "hello";
char str2[] = "world";
char *result = fun(str1, str2);
printf("The longer string is: %s\n", result);
return 0;
}
```
函数fun接受两个参数,分别为需要比较长度的两个字符串。在函数内部,通过遍历两个字符串,求出它们的长度。然后根据长度大小判断哪个字符串更长,并返回较长的那个。如果两个字符串长度相同,则返回第一个字符串。
在主函数中,我们定义了两个字符串,分别为"hello"和"world"。然后调用函数fun,并将返回值赋给指针变量result。最后,打印出较长的字符串即可。
希望我的回答能够帮到您!
阅读全文