[英]This program written in C is not giving proper output
這是一個將字符串的字母轉換為大寫或小寫字母的程序。我不知道這段代碼有什么問題。運行它時,它會忽略字符串的第一個字母。就像我給字符串“ Lets go out”,則輸出為大寫時輸出為“ ETS GO OUT”(“ L”被排除,不應該發生),轉換為大寫時,輸出為“ ts out”(“ le”被排除,不應該發生)。小寫。我使用代碼塊。 請有人幫助我:'(
#include<ctype.h>
#include<stdio.h>
int main()
{
char str[80],*p;
printf("Enter A String\n");
gets(str);
p=str;
while(*p)
*p++=toupper(*p);
printf("After uppercase conversion: %s\n",str);
p=str;
while(*p)
*p++=tolower(*p);
printf("After lowercase conversion: %s\n",str);
return 0;
}
while
循環等效於以下代碼:
while (*p)
{
*p = tolower( *(p+1) );
p = p+1;
}
因此,要解決此問題,可以使用例如for
循環,如下所示:
#include<ctype.h>
#include<stdio.h>
int main()
{
char str[80],*p;
printf("Enter A String\n");
gets(str);
for (p = str; *p != '\0'; p++)
*p = toupper(*p);
printf("After uppercase conversion: %s\n",str);
for (p = str; *p != '\0'; p++)
*p = tolower(*p);
printf("After lowercase conversion: %s\n",str);
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.