2015-02-26 2 views
1

Привета Я использую функцию strtok разделить массив следующим образом:использование символа * для сравнения со значением на строке

char str[] ="one11;one2"; 
char* pch; 
pch = strtok (str,";"); 
while (pch != NULL) 
    pch = strtok(NULL, ";"); 

Теперь мне нужно сравнить мой указатель PCH с определенным значением, скажем:

if (pch == "one11") 
    // do this 

Хотя я получаю первую часть строки, в данном случае «one11» сравнение не удается. Есть ли способ сравнить эти две вещи?

Спасибо,

+0

См. Функцию 'strcmp'. – Arkku

ответ

2

Для сравнения строк использовать стандартную функцию strcmp заявленной в заголовке <string.h>. Например,

#include <string.h> 

//.. 
char str[] ="one11;one2"; 
char* pch; 
pch = strtok (str,";"); 
while (pch != NULL && strcmp(pch, "one11") != 0) 
    pch = strtok(NULL, ";"); 

Если первая строка меньше второй, функция возвращает отрицательное значение. Если строки равны, то функция возвращает 0. И если первая строка больше второй, функция возвращает положительное значение.

+0

О, я думал, что strcmp необходимо для обеспечения пространства для каждой переменной, я не знал, что даже указатели работают. Благодарю. – Sunscreen