簡體   English   中英

我沒有為我的 C 程序獲得確切的 output

[英]i am not getting the exact output for my C program

問題是:編寫一個 C 程序將字符串 S 的小寫字母轉換為大寫字母,反之亦然。 1<=S<=100

例子:

輸入

HelloWORLD

預計OUTPUT

hELLOworld

輸入

RanDoM

預計OUTPUT

rANdOm

我的代碼

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

int main()
{ char s[100];
int i;
for (int j=0; j<=100 ; j++)
{
 scanf("%s",&s[j]) ;
}
for (i=0; s[i]!='\0'; i++)
    {
        if (s[i]>='a' && s[i]<='z')
        {
            s[i] = s[i] - 32;

        }
        else
        {
            s[i] = s[i] +32;

        }

    }
    for (int k=0; k<=100 ; k++)
    {    
        if (s[k]!='\0')
      {  printf("%c",s[k]) ; }
    }


    return 0;

}

我得到的 OUTPUT 是:

輸入

HelloWORLD

當前 OUTPUT

hELLOworldԯ@ _�"����ԯ8_�"�>sn�"�

輸入

 RanDoM

當前 OUTPUT

rANdOm�
�$@0�������$H����>s�

我需要對代碼進行哪些更改才能去掉單詞末尾的符號?

在所有建議和幫助之后,我找到了給出預期 output 的代碼:

#include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main()
    {  char str[100];
 scanf("%s",str);
       int i;

    for (i=0; i<sizeof(str); i++)
        {    
            if (str[i]>='a' && str[i]<='z'&& str[i]!='\0')
            {
                str[i] = str[i] - 32;

            }
            else if(str[i]>='A' && str[i]<='Z'&& str[i]!='\0')
            {
                str[i] = str[i] +32;

            }

        } 
         printf("%s",str);
        return 0;

    }

嗨,您的程序中有一些額外的代碼,也有一些錯誤。 我正在對您的程序進行一些更正以完成您的任務。

  • 我不是為了您更好地理解而編寫新代碼
  • 我沒有刪除行,只是評論這些行並在行注釋中給出原因
  • 您應該閱讀所有評論並在使用前刪除。
  • 如有任何困惑,請在評論部分詢問

 #include<stdio.h> #include<string.h> int main() { char s[100]; int i,j,k; //Loop not required //for (j=0; j<=100; j++) //{ scanf("%s",&s[j]); //} for (i=0; s[i];= '\0'; i++) { //You should have to compare with ASCII or use string methods like islower //if (s[i]>='a' && s[i]<='z') if (s[i]>= 97 && s[i]<= 122) // ASCII for a-97 and z-122 { s[i] = s[i] - 32; } else //u may put a check here for upper case to handle errors { s[i] = s[i] + 32; } } //No loop or if statement required // for (k=0; k<=100, k++) //{ // if (s[k];='\0') // { printf("%s";s) ; // } //} return 0; }

暫無
暫無

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

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