Как написать программу на C, которая может конвертировать Volwels в заданной строке в нижнюю, если она была верхней и верхней, если она была ниже? - PullRequest
4 голосов
/ 09 марта 2012
#include <ctype.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
    char input[50];
    char i;
    int j = 0;

    printf("Please enter a sentence: ");
    fgets(input, 50 , stdin);

    for (j = 0; input[i] != '\0'; j++)      
        if (input[i]=='a'||input[i]=='e'||input[i]=='i'||input[i]=='o'||input[i]=='u')
        {
            input[i]=toupper(input[i]);
            printf("Your new sentence is: %s", input);
        }

         else if (input[i]=='A'||input[i]=='E'||input[i]=='I'||input[i]=='O'||input[i]=='U')
        {
            input[i]=tolower(input[i]);
            printf("Your new sentence is: %s", input);
        }

    return 0;
}

Это не моя Домашняя работа . Я новичок в C. Я не могу найти ошибку в моем коде, у меня есть googled это но не могу найти какие-либо полезные данные, которые могли бы исправить мою ошибку. ОШИБКА, которую я получаю, - это printf («Ваше новое предложение:% s», ввод); ----> эта строка не выполняет никаких действий, и я признателен, если кто-то исправь мою ошибку.

ВХОД - пожалуйста, введите предложение Я новичок в C

Требуемый результат- Ваше новое предложение: я - лучший в с

АКТУАЛЬНЫЙ ВЫХОД - // пустая строка //

Спасибо

Ответы [ 4 ]

2 голосов
/ 09 марта 2012

Для чего стоит xoring 0x20 переключит регистр букв, посмотрите на биты прописных и строчных букв в таблице ASCII .Это также хорошее время для ознакомления со стандартной библиотекой.Функция strchr позволит вам значительно упростить ваш код:

for(i=0; str[i]; i++)
    if(strchr("aeiouAEIOU", str[i]))
        str[i] ^= 0x20;
2 голосов
/ 09 марта 2012

Ваш цикл неверен:

for (j = 0; input[i] != '\0'; j++)  

Должно быть:

for (i = 0; input[i] != '\0'; i++)  

Нет необходимости в переменной j, поскольку вы никогда не используете ее.

1 голос
/ 09 марта 2012

как и в другом ответе, вы хотите использовать i, а не j .... вы также захотите поставить {} в свой for.Затем переместите ваш printf ....... вы можете сделать его проще в качестве расширенного упражнения:)

for (i = 0; input[i] != '\0'; i++)      
{
        if (input[i]=='a'||input[i]=='e'||input[i]=='i'||input[i]=='o'||input[i]=='u')
        {
            input[i]=toupper(input[i]);
        }

         else if (input[i]=='A'||input[i]=='E'||input[i]=='I'||input[i]=='O'||input[i]=='U')
        {
            input[i]=tolower(input[i]);

        }
}
   printf("Your new sentence is: %s", input);
    return 0;
0 голосов
/ 09 марта 2012

Теперь это смешно.Это может быть только домашнее задание.

for (i = 0; input[i] != '\0'; i++)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...