《程序设计基础》 第十一章 指针进阶 6-6 计算最长的字符串长度 (15 分)

本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。

函数接口定义:

int max_len( char *s[], int n );

其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。

裁判测试程序样例:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAXN 10
#define MAXS 20

int max_len( char *s[], int n );

int main()
{
    int i, n;
    char *string[MAXN] = {NULL};

    scanf("%d", &n);
    for(i = 0; i < n; i++) {
        string[i] = (char *)malloc(sizeof(char)*MAXS);
        scanf("%s", string[i]);
    }
    printf("%d\n", max_len(string, n));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

4
blue
yellow
red
green

结尾无空行

输出样例:

6
int max_len( char *s[], int n )
{
	int res=0,i;
	for(i=0;i<n;i++)
	res=strlen(s[i])>res?strlen(s[i]):res;
	return res;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 这个实验要求我们编写一个函数来计算指针字符串长度指针字符串是指使用指针来表示的字符串,也就是以字符数组的形式存储在内存中的字符串。 我们可以使用指针来遍历字符串,每遍历一个字符就将计数器加1,直到遍历完整个字符串。最后返回计数器的值即可。 下面是一个示例代码: ```c #include <stdio.h> int str_len(char *str) { int len = ; while (*str != '\') { len++; str++; } return len; } int main() { char str[] = "hello world"; int len = str_len(str); printf("The length of the string is %d\n", len); return ; } ``` 在上面的代码中,我们定义了一个名为`str_len`的函数,它接受一个指向字符数组的指针作为参数。在函数内部,我们使用一个`while`循环来遍历字符串,每遍历一个字符就将计数器`len`加1。当遍历到字符串的结尾时,也就是遇到了空字符`\`,循环就会停止。最后,函数返回计数器的值。 在`main`函数中,我们定义了一个字符串`str`,并调用`str_len`函数来计算它的长度。最后,我们使用`printf`函数来输出字符串长度。 希望这个回答能够帮助到你。 ### 回答2: 在C语言中,字符串是用字符数组来存储的,可以使用指针来访问字符串。在本实验中,我们需要计算指针字符串长度,可以使用指针来实现。 指针字符串长度可以使用两种方法计算:第一种方法是通过遍历字符串计算字符串长度,第二种方法是使用指针计算字符串长度。 第一种方法需要使用循环来遍历字符串,直到遇到字符串的结尾为止,期间计算每个字符的数量。可以使用while或for循环语句来实现。在循环中,需要使用指针来访问字符串中的每个字符,对指针行自增操作,然后继续循环,直到指针指向字符串的结尾为止。 第二种方法使用指针计算字符串长度,需要在指针中存储字符串的起始位置,并使用指针的自增操作逐个访问每个字符,直到访问到字符串的结尾位置。在访问每个字符时,需要记录下来访问字符的数量,最后返回字符数量即为字符串长度。 在实现过程中,需要注意空指针和非法指针的情况,如果指针为空或指向非法内存地址,程序可能会崩溃或出现不可预期的结果。 在本实验中,可以通过编写一个计算字符串长度的函数来实现计算指针字符串长度,并在主函数中调用该函数测试验证,最终输出计算出的字符串长度。 综上所述,计算指针字符串长度可以通过遍历字符串或使用指针计算两种方法实现,需要注意指针的操作和指针的有效性。 ### 回答3: 在C语言中,我们强烈建议使用指针来处理字符串。因为字符串在C语言中本质上是字符数组,而指针有利于我们可以更快速方便地处理这些数组中的元素。本篇文章将讨论如何使用指针计算字符串长度。 在C语言中,字符串通常使用NULL结尾。这意味着在字符串后面,使用'\0'作为结束标志。因此,要计算字符串长度,只需从第一个字符开始沿着字符串逐个字符遍历,直到遇到'\0'字符为止,即可得到字符串长度。这里的关键是,要使用指针来遍历字符串。例如,假设有一个指针变量str,指向一个字符串的第一个字符。我们可以使用一个循环来遍历字符串,并在每次迭代中将指针向前移动一个位置,直到我们找到NULL终止符。 下面是一个计算字符串长度的例程: ```c #include <stdio.h> int strlen(char *str) { int count = 0;//用于计算字符串长度的变量 // 循环遍历,直到遇到 NULL 终止符 while (*str != '\0') { count++; str++; } return count; } int main() { char my_str[] = "Hello, World!";//测试用的字符串 // 调用strlen()函数 int length = strlen(my_str); // 输出字符串长度 printf("The length of the string '%s' is %d\n", my_str, length); return 0; } ``` 上述程序的输出为: The length of the string 'Hello, World!' is 13 在上面的代码中,我们使用strlen()函数计算字符串长度。其中,变量count用于保存字符串长度。该函数遍历字符串中的每个字符,然后将count值增加1,直到遇到NULL终止符。此外,由于我们在函数中使用了指针,因此输入字符串长度不受限制。 总之,使用指针计算字符串长度是一个很有用的技能,可以使我们更高效地处理字符串。如果你是刚学C语言的新手,建议多练习使用指针处理字符串,提高自己的编程技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茶然o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值