簡體   English   中英

C使用指針打印字符串后綴的編程

[英]C Programming on printing a string backwords using pointers

我的程序將從用戶獲取一串字符並向后打印該句子,它將繼續向用戶詢問另一個字符串,直到該字符串等於退出。 我遇到的問題是,當用戶進入退出時,它繼續循環,當我希望它只打印“謝謝”。 我不知道為什么當用戶進入退出時if和else語句不起作用。

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

int main()
{
    char chr;
    char *cPtr;
    char someString[50];
    int stringSize;
    int indx;

    printf("Enter a string of characters: ");
    cPtr = someString;

    while ((chr = getchar()) != '\n')
    {
        *cPtr = chr;
        cPtr++;
    }
    *cPtr = '\0';

    stringSize = strlen(someString);

    if (someString == "quit" )
    {
        printf("Thank you.");
    }
    else
    {
        while (someString != "quit")
        {
            for (indx = stringSize; indx >= 0; indx--)
            {
                printf("%c",*cPtr--);
            }

            printf("\nEnter a string of characters: ");
            cPtr = someString;

            while ((chr=getchar())!= '\n')
            {
                *cPtr = chr;
                cPtr++;
            }
            *cPtr = '\0';

            stringSize = strlen(someString);
        }
    }
}

if (someString == "quit" )不比較兩個字符串內容。 它正在比較它們的地址,這些地址總是不同的。 請改用strcmp函數。 同樣適用於while (someString != "quit")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM