2013-09-12 1 views
2

Итак, я хочу, чтобы программа hello.c записывала как первое имя, так и фамилию на одной строке, поэтому в этой форме, но когда я запускаю свою программу в этой текущей форме, она дает мне ошибка «ожидается â) â перед строковой константой« Я думаю, что у меня остальная часть кода, потому что я удалил эту строку и запустил ее, и она работает. Поэтому я просто хочу спросить, как получить 2 строки, на которые я уже указал, чтобы идти по одной строке.Запись 2 строк в одной строке в C

Это мой код

#include <stdio.h> 
int main() 
{ 
    char firstname[20]; 
    char lastname[20]; 
    printf("What is your firstname?"); 
    scanf("%s", firstname); 
    printf("What is your lastname?"); 
    scanf("%s", lastname); 
    printf("Hello %s\n", firstname "%s", lastname); 
    printf("Welcome to CMPUT 201!"); 
    } 

ответ

6

Вы хотите

printf("Hello %s %s\n", firstname, lastname); 

вместо

printf("Hello %s\n", firstname "%s", lastname); 
+1

(Кроме того, вы, вероятно, хотите что-то защитить от переполнения буфера при чтении в именах, что, если кто-то входит в 21 символ для одного из них?) –

+0

Большое вам спасибо. Ты обалденный. Это устранило проблему. – user2767528

+1

Я использовал char (firstname), потому что мой профессор сказал, что нам нужно использовать имя менее 20, но я бы использовал fgets или увеличил объем памяти, выделенный для строк в char. Будет ли это работать? – user2767528

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

int main() 
{ 
    char first_name[20] = " ", last_name[20] = " ", full_name[40] = " "; 
    printf("What is your firstname?\n"); 
    scanf("%s", first_name); 
    printf("What is your lastname?\n"); 
    scanf("%s", last_name); 
    sprintf(full_name,"%s %s",first_name, last_name); 
    printf("name is %s\n",full_name); 
    return 0; 
} 

Я показал тот же используя Sprintf.

1) также в вашей программе вы ничего не возвращаете, если не хотите возвращать что-либо, сделайте его как функцию пустоты. Когда вы пишете функцию int, всегда делайте ее привычкой возвращать целое число.

2) Кроме того, когда вы пишете функцию PRINTF всегда сделать его привычкой добавить \ п (новая линия), поэтому выход выглядит хорошо

счастливым кодирования.

+0

«Если вы не хотите возвращать что-либо, сделайте его как функцию пустоты». НЕТ! 'void main()' является строгим NO! – HAL

+0

@HAL вы можете объяснить причину. Насколько мне известно, когда я не хочу возвращаться, нужно использовать пустоту. Пожалуйста, не стесняйтесь меня исправлять. – Megharaj

+0

Согласно стандарту C99. – HAL