[英]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.