将char *数组大小存储在int计数器中

时间:2016-10-09 14:53:18

标签: c char

好吧,我的计数器int x中的数据更新有问题。我将很多char *字符串传递给我的函数,例如当我传递长度为8的第一个char *时,int x将为8.然后如果我传递长度为11的下一个char *,x仍将保持值为8.有关修复它的建议吗?

bool check(const char* word)
{
    char checker[LENGTH+1];
    int x = sizeof(word);

    for(int a=0; a<x; a++) {
        checker[a] = word[a];
    }

    for(int i=0; i < x-1; i++) {
        //check if all chars are lower-case
        if(checker[i] < 'a' && checker[i] != '\'') {
        checker[i] = tolower(checker[i]);
        }
    }
} 

1 个答案:

答案 0 :(得分:1)

sizeof(word)给你指针的大小。请改用strlen来获取字符串的长度。

另外一个样式注释,x对于存储字符串长度的变量来说不是一个很好的名称,我将它命名为与它实际使用的内容有关。