Closed. This question is off-topic. It is not currently accepting answers. Learn more
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
两年前关闭。
我有这么一段代码
int main()
{
    char* word = "kotok";
    char* word1 = word;
    while (word1 != '\0'){
        printf("%s ", word1);
        word1++;
    }
    return 0;
}

但它不会在打印“k otok,otok,t ok,ok,k”后结束。此代码继续打印一些垃圾,然后停止。如何克服?
我试图添加word1[strlen(word1)] = '\0';,但它给出了一个分段错误。

最佳答案

word1是指针。'\0'是一个字符。这就是为什么word1 != '\0'没有达到您期望的效果。
您必须取消对指针的引用才能获取它指向的字符:

while (*word1 != '\0') {

关于c - C中的char *结尾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40567279/

10-13 05:02