Я хотел, чтобы две функции останавливали программу при вводе слова «выход», но цикл для этой спецификации не работает. не могли бы вы это исправить?

Вот код. пожалуйста, проверь это.

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


void uppercase(char *str) {
    int i;

    for(i=0; i<=strlen(str); i++) {

        if(str[i]>=65&&str[i]<=90)

            str[i]=str[i]+32;
    }

    printf("\nThe string in lower case is->%s\n",str);
}

void lowercase(char *str) {
    int i;

    for(i=0; i<=strlen(str); i++) {

        if(str[i]>=97&&str[i]<=122)

            str[i]=str[i]-32;
    }


    printf("The uppercase equivalent is: %s\n", str);
    getchar();

}

int main()
{
    char str[100];
    char lower[100];
    int i;


    while(1)
    {

        printf("Enter any string->");
        scanf("%s",&str);

        if (str == 'exit')
        {
            break;
        }
        else
        {
            printf("The string is->%s\n",str);

            uppercase(str);

            lowercase(str);
        }
    }
    return 0;
}
c
-1
B.am 16 Окт 2015 в 23:11

2 ответа

Лучший ответ

Заменить:

if (str == 'exit')

Этим

if (strcmp(str , "exit")==0)
0
milevyo 16 Окт 2015 в 20:25
void uppercase(char *str){
   int i;

   for(i=0;i<strlen(str);i++){

      //if(islower(str[i]))
         str[i]=toupper(str[i]); 
    }

    printf("\nThe string in uppercase is->%s\n",str);
}
0
milevyo 17 Окт 2015 в 23:34