1. 程式人生 > >計算最長的字串長度

計算最長的字串長度

輸入n (n<10)個字串,輸出其中最長字串的有效長度。要求自定義函式 Int max_len ( char *s[],int n),用於計算有n個元素的指標陣列s中最長的字串的長度。

法一:
思路:設定一個指標陣列與一個二維陣列,使指標陣列指向二維陣列
#include<stdio.h>
#include<string.h>
int max_len(char*s[],int n)
{
int i,j=0;
for(i=0;i<n;i++)
{
if(strlen(s[i])>strlen(s[j]))
{
j=i;
}
}
return strlen(s[j]);
}
int main()
{
int i,n;
char*s[10];
char a[10][10];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",a[i]);
s[i]=a[i];
}
printf("%d",max_len(s,n));

}

法二:
思路:利用動態分配,malloc,只有一個指標陣列
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int max_len(char*s[],int n)
{
int max=0;
int i;
for(i=0;i<n;i++)
{
if(strlen(s[max])<strlen(s[i]))
{
max=i;
}
}
return strlen(s[max]);
}
int main()
{
int n;
int i;
char*str[10];
scanf("%d",&n);
for(i=0;i<n;i++)
{
str[i]=(char*)malloc(sizeof(char)*10);/*這邊本來想用strlen(str)+1的,不知道為什麼會出錯,用了這種方法,只能執行,但效率低下*/
scanf("%s",str[i]);
}
printf("%d\n",max_len(str,n));
return 0;
}