2016-03-09 5 views
-1

У меня есть вопрос по этой строке.C программирование Печать строк

, например:

char ex1[20]="Hello hi"; 
int choose; 
scanf("%d",&choose); 

Что я должен сделать, чтобы напечатать «привет», когда пользователь вводит 1 и «привет» будет напечатан, если он входит в 0?

Благодарим за помощь.

+1

Вы смотрели с помощью функции strtok, чтобы разметить EX1 на две отдельные строки? – bruceg

+3

Вы знакомы с оператором 'if'? – lurker

+2

Определив два слова отдельно в массиве. 'char ex2 [2] [20] = {« Hello »,« hi »};' –

ответ

1

Я думаю, вы хотите этого.

#include<stdio.h> 
#include<string.h> 
void split(char*str, char** arr) { 
    char* str2 = strstr(str, " "); 
    *str2 = '\0'; 
    str2++; 
    arr[0] = str; 
    arr[1] = str2; 
} 
int main(void) { 
    char ex1[20] = "Hello hi"; 

    char*arr[2]; 
    split(ex1, arr); 

    int choose; 
    scanf("%d", &choose); 
    switch (choose) { 
    case 0: 
     puts(arr[0]); 
     break; 
    case 1: 
     puts(arr[1]); 
    } 

    return 0; 
} 

Результаты следующие

enter image description here

enter image description here

+0

да что-то вроде этого, но у меня более 200 строк, но спасибо, я буду использовать функцию strstr. – user4574134

0

Это вы имеете в виду? Я не совсем понимаю, что вы имеете в виду.

char buf[2]; 
fgets(buf, 2, stdin); 
*buf == '1' ? puts("hi") : puts("hello"); 

Это читает первые два символа из stdin, стандартный входной поток, а затем печатает «Привет», если первый символ равен 1, или «Привет» в противном случае.

+0

У вас есть два 'puts', и я предпочитаю их слияние:' puts (* buf == '1'? "Hi": "hello"); ' – MikeCAT

+0

Это прочитанное первый символ (не два), потому что завершающий нулевой символ должен храниться в 'buf'. – MikeCAT

+0

'* buf == '1'? puts («привет»): puts («hello»); '- вы должны запускать того, кто пишет такой код, вместо использования оператора' if'. – immibis

2

Самым простым решением было бы:

if(choose == 1) 
    printf("Hello\n"); 
else if(choose == 0) 
    printf("hi\n"); 
else 
    printf("Please enter 1 or 0.\n"); 

Вам не нужно ex1 здесь.

Смежные вопросы