Проблема заключается в следующем: написать программу C для преобразования строчных букв в прописные и наоборот из строки S. 1 <= S <= 100 </p>
ПРИМЕР:
INPUT
HelloWORLD
Ожидаемый ВЫХОД
hELLOworld
ВХОД
RanDoM
Ожидаемый ВЫХОД
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;
}
ВЫХОД, который я получаю:
ВХОД
HelloWORLD
Текущий ВЫХОД
hELLOworldԯ@ _�"����ԯ8_�"�>sn�"�
ВХОД
RanDoM
Текущий ВЫХОД
rANdOm�
�$@0�������$H����>s�
Какие изменения в коде мне нужно внести, чтобы избавиться от символов в конце слова?
После всех предложений и помощи я нашел код, который дает ожидаемый результат:
#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;
}