2013-12-14 3 views
0

Привет, я начинаю программировать на C. Я делаю программу, которая должна обходить все элементы строки, строка вводится пользователем. Проблема в том, что мне нужен размер символов в строке, которую я пробовал много, ни одна из них не работала.C sizeof char array

for(int i = 0; i <= cUserInput; i++){ 
     if(&cUserInput[i] == cFirstLineR[i]){ 
     printf("Check///Failed\n"); 
    } 

cUserInput - пользовательский ввод. Мне нужен его размер.

cFirstLineR представляет собой массив символов для кемпинга.

+0

Добро пожаловать на SO. Чтобы узнать, что вам нужно, вам придется немного больше информации. Дайте использовать объявление всех переменных. Вы можете использовать функциональность «изменить», чтобы изменить свой вопрос. –

+0

Как вы вводите пользователя? Является ли это завершенной нитью? – XORcist

+0

Вот часть моего исходного кода: #include #include #include INT основной (аннулируются) { символ cFirstLineR [] = { 'и', 'я', 'о', 'р', 'U', 'I', 'O', 'P', 'J', 'K', 'L', 'J', 'K', 'L', 'N', 'м », 'N', 'М'}; char cUserInput [100]; fgets (& cUserInput, 100, stdin); for (int i = 0; i <= strlen (cUserInput) - 1; i ++) { if (& cUserInput [i] == & cFirstLineR [i]) { printf ("Check /// Failed \ n"); } возвращение 0; } Теперь, если петля if работает правильно, но у меня проблема с выражением te if. – user3101849

ответ

1

Используйте функцию strlen(const char* str), чтобы получить размер строк. Он будет считать символы до NUL терминатора. Смотрите ссылку здесь: http://www.cplusplus.com/reference/cstring/strlen/

Примечание: чтобы использовать его, вы должны включить заголовок "string.h"

+0

Да, теперь цикл for отлично работает. – user3101849

+0

@ user3101849 Итак, вы можете принять этот ответ. – Lazybeem

0

Существует функция называется sizeof(), который должен работать с вашей проблемой ...

+0

Это может работать или не работать, в зависимости от того, объявлен ли 'cUserInput' как массив или указатель. – Barmar

+0

В этом случае размерofof не работает – user3101849