Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Виктор2
Зарегистрирован: 10.10.2005 Сообщения: 37
|
Добавлено: Вт Дек 20 2005 12:18 Заголовок сообщения: Ошибка в strncpy? |
|
|
Нужно найти символ : в строке f и скопировать n символов в строку login_s. Я делаю так:
i=strlen(f);
p=strchr(f,':');
j=i-strlen(p);
strncpy(login_s,f,j);
Все работает но в результате у меня login_s та же строка f только в позиции j добовлено несколько лишних символов.
Может не работает потому что я это делаю в Unix-e или я сделал ошибку? |
|
Вернуться к началу |
|
|
eugene22
Зарегистрирован: 03.11.2005 Сообщения: 5
|
Добавлено: Вт Дек 20 2005 15:15 Заголовок сообщения: Re: Ошибка в strncpy? |
|
|
Виктор2 писал(а): |
Все работает но в результате у меня login_s та же строка f только в позиции j добовлено несколько лишних символов.
Может не работает потому что я это делаю в Unix-e или я сделал ошибку? |
Ноль в конце строки новой добавь |
|
Вернуться к началу |
|
|
Виктор2
Зарегистрирован: 10.10.2005 Сообщения: 37
|
Добавлено: Вт Дек 20 2005 16:42 Заголовок сообщения: |
|
|
Добавил
...
strcat(login_s,"\0");
ничего не случилось. |
|
Вернуться к началу |
|
|
Aragaer
Зарегистрирован: 28.03.2005 Сообщения: 164
|
Добавлено: Вт Дек 20 2005 19:32 Заголовок сообщения: |
|
|
Код: | j = strchr(f, ':') - f;
strncpy(login_s, f, j);
login_s[j] = 0; |
Хотя лучше, наверно, воспользоваться sscanf'ом:
Код: | sscanf(f, "%s:%s", login_s, p) |
_________________ Open your eyes.
And Awaken. |
|
Вернуться к началу |
|
|
Виктор2
Зарегистрирован: 10.10.2005 Сообщения: 37
|
Добавлено: Вт Дек 20 2005 20:51 Заголовок сообщения: |
|
|
Спасибо всем! |
|
Вернуться к началу |
|
|
|