请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
时间: 2024-05-11 16:16:27 浏览: 62
好的,我会编写这个函数。以下是代码:
```
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语言提供的求字符串长度的函数。
相关问题
请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
以下是一个用C语言编写的函数fun,实现了比较两个字符串长度的功能:
```c
#include <stdio.h>
char* fun(char* str1, char* str2) {
int len1 = 0, len2 = 0;
// 计算第一个字符串的长度
while (*str1 != '\0') {
len1++;
str1++;
}
// 计算第二个字符串的长度
while (*str2 != '\0') {
len2++;
str2++;
}
// 比较字符串长度并返回较长的字符串
if (len1 >= len2) {
return str1 - len1;
} else {
return str2 - len2;
}
}
int main() {
char str1[] = "Hello";
char str2[] = "World";
char* result = fun(str1, str2);
printf("The longer string is: %s\n", result);
return 0;
}
```
注意:这里使用了指针的运算来获取字符串的起始位置,返回的是较长字符串的起始位置。
请用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。最后,打印出较长的字符串即可。
希望我的回答能够帮到您!
阅读全文