我有以下字符指针数组:
char* wordArray[ARRAY_MAX];
现在我想让所有字符都小写。我尝试通过循环数组然后使用指针使用以下代码将每个字符转换为小写来实现此目的:
for (i = 0; i < 2000; i++) {
lineoftext2[i] = lineOfText[i]; //lineoftext is just an array of chars
}
words = strtok(lineoftext2, "\n ,-.)");
Word wordPlaceArr[ARRAY_MAX];
int wordNumArr[ARRAY_MAX];
while (words != NULL)
{
wordArray[count] = words;
count++;
words = strtok(NULL, "\n ,-.)"); //Remove punctuation an put into an array of char pointers
}
char* wordpointer; //HERE is where I want to convert all the letters to lowercase
for (i = 0; i < count-1; i++) {
for(wordpointer = wordArray[i]; wordpointer != '\0'; wordpointer+= sizeof(char)) {
*wordpointer = tolower(*wordpointer); //results in seg-fault
}
}
当我尝试将 wordArray 中的所有字符串设为小写时,上面的代码会导致段错误。如何解决此问题以成功将所有字符串转换为小写
最佳答案
wordpointer != '\0';
这永远不会是真的,因此循环永远不会停止。指针永远不会等于零,除非它回绕,并且在这种情况发生之前你就会崩溃。您的意思是 *wordpointer != '\0';
。
关于将 char 指针数组转换为小写 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35490575/