2013-05-29 14 views
-1

Я новичок в C, и у меня есть следующий простой код. Я знаю, что с помощью strncpy я могу скопировать символы из строки.Как получить часть массива char в c

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

int main() 
{ 
    char str1[]= "To be or not to be"; 
    char str2[40]; 

    strncpy (str2, str1, 5); 
    str2[5] = '\0'; /* null character manually added */ 
    puts (str2); 

    return 0; 
} 

Выход этого кода

To be 

Если я хочу, чтобы результат не to' `или как я могу читать эти символы? От 7 до 15 в этом случае?

+2

прекратите использование строк c-style в C++ и используйте [std :: string] (http://en.cppreference.com/w/cpp/stri нг/basic_string). у него есть 'find_first_of' или' at() ', которые могут вам помочь –

+0

Мне нужен ответ для этого примера. Итак, в C..Sorry об этом – dali1985

+2

Удален тег' C++ '. – BoBTFish

ответ

4

Использование:

strncpy (str2, str1+6, 9); 
    str2[9] = '\0'; /* null character manually added */ 
0

Простой способ сделать это, смещение str1:

strncpy (str2, str1 + 6, 9); 
2

Нет необходимости подсчитывать вручную, вы можете использовать стандартную библиотечную функцию для this.Try как следующий

strncpy (str2, str1+strlen("To be "), strlen("or not to")); 
str2[strlen("or not to")] = '\0'; 
Смежные вопросы