2014-11-19 3 views
0

Учитывая список строк, мне интересно, как я могу создать новую строку, содержащую только один из списка строк.Как получить одну строку из списка строк

Например:

char* myStrings[]={"Frosty the Snowman", "Rudolph the red nosed reindeer"}; 
char oneString[]=myStrings[0]; 

printf("A string: %s\n", oneString); 

Для того, чтобы только печать:

A string: Frosty the Snowman 

Это не работает из-за недопустимого инициализаторе.

Извините, если это было опубликовано раньше, я не смог его найти. Спасибо.

Редактировать - Я знаю, что могу напечатать его, выполнив myString [0] вместо oneString, но я пытаюсь создать новую строку только с одной из заданных строк.

+0

Индексы массивов основаны на «нулевом» значении, так же как и выше 'myStrings [0] =« Морозный снеговик »,' myStrings [1] = «Rudolph the red nosed reindeer» и т. Д. Поэтому 'printf («Строка:% s \ n», myStrings [0]); 'prints' "Frosty the Snowman" ' –

+1

Используйте' strcpy', массивы C не назначаются. – Deduplicator

+0

В C вы не можете инициализировать переменную динамически (т.е. инициализировать переменную другой переменной). Таким образом, вам нужно сначала создать oneString, ТОГДА скопируйте myStrings [0] в него. – Loocid

ответ

2

Попробуйте

#include <stdio.h> 

int main(void) { 
    char* myStrings[]={"Frosty the Snowman", "Rudolph the red nosed reindeer"}; 
    char oneString[500]; 
    strcpy(oneString,myStrings[0]); 
    printf("A string: %s\n", oneString); 
    return 0; 
} 
0

использование character pointer будет хорошо:

#include <stdio.h> 

int main(void) { 
    char* myStrings[]={"Frosty the Snowman", "Rudolph the red nosed reindeer"}; 
    char *oneString = myStrings[0]; 
    printf("A string: %s\n", oneString); 
    return 0; 
} 

выход:

$ ./bin/prnpointer 
A string: Frosty the Snowman 
0

Изменить

char oneString[]=myStrings[0]; 

к

char *oneString = myString[0]; 

и он будет работать!

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