未能字符串读取字符

时间:2019-02-02 07:20:25

标签: c

有2个功能,第一个字的计算重量,二是检查该字的具有最大的价值,并返回它的地址,我的问题是每当我使双指针和将值插入它然后“插入”是指向我的功能,它不能在它读出值。(不是最好的英语对不起,我已经尽了全力)

它只是每当在主函数复制我的功能,并与循环运行它的作品,我还是新,所以试图解释这个问题,请尝试,如果它的愚蠢的问题不恼!

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

int calc_weight(char* word);
char* max_weight(char* s[], int n);

int main()
{   
    char s[5][10];
    for (int i = 0; i < 5; i++)
        scanf("%s", (s + i));
    printf("%s\n",max_weight(s, 5));


    return 0;
}
int calc_weight(char* word)    //calculates weight of the word
{       //assuming this function gets only small letters a...z
    int counter = 0;
    for (int i = 0; i < strlen(word); i++)// a=1,b=2...
        counter += word[i] - 'a' + 1;
    return counter;
}
char* max_weight(char* s[], int n)
{
    int maxind = 0;
    for (int i = 1; i < n; i++)
        if (calc_weight(s + i) > calc_weight(s + maxind))
            maxind = i;
    return (s+maxind);
}

1 个答案:

答案 0 :(得分:0)

max_weight中,当您写char* s[]时表示:

  

将s声明为指向char的指针

但是您没有传递指针数组。

char s[][10]像这样:

char* max_weight(char s[][10], int n)

告诉s是指向10个字符的数组的指针。