好吧,我的计数器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]);
}
}
}
答案 0 :(得分:1)
sizeof(word)
给你指针的大小。请改用strlen
来获取字符串的长度。
另外一个样式注释,x
对于存储字符串长度的变量来说不是一个很好的名称,我将它命名为与它实际使用的内容有关。