2011-12-23 2 views

ответ

1

Стандартный путь в чистом C является использование strtok, хотя это довольно опасно и разрушительно функция (он изменяет переданный в символьном буфере).

C++, есть лучшие способы; см. здесь: How do I tokenize a string in C++?

1

Вы должны написать свою собственную функцию. В библиотеке C есть strtok(), strspn() and strcspn(), и то, что вы называете String, представляет собой массив символов (который заканчивается на \0).

0

Для подстроки strndup. Для токенизации/расщепления используйте strtok.

+0

-1 для рекомендации нестандартных функций. – Lundin

1

strtok - это общее решение для токенизации строк. Более простой и ограниченный способ заключается в использовании strchr:

#include <string.h> // strchr, strcpy 
#include <stddef.h> // NULL 

const char str[] = "Merry Christmas"; 
const char* ptr_merry = str; 
const char* ptr_christmas; 

ptr_christmas = strchr(str, ' '); 

if(ptr_christmas != NULL) 
{ 
    ptr_christmas++; // point to the first character after the space 
} 


// optionally, make hard copies of the strings, if you want to alter them: 
char hardcpy_merry[N]; 
char hardcpy_christmas[n]; 
strcpy(hardcpy_merry, ptr_merry); 
strcpy(hardcpy_christmas, ptr_christmas); 
Смежные вопросы