Fryazino.NET Forum || Hard&Soft || Ничччего не понимаю!
>> Привет, Гость! Войдите! : вход | поиск | правила | банлист
Автор
Ничччего не понимаю! (1) 1 для печати | RSS 2.0
Helgi
Участник
1448
#include
#include
#include

void main()
{
char a[20]="12345678",b[20]="";
int size=strlen(a);
//1.копируем в b a без четырех последних символов
strncpy(b,a,size-4);
printf("%s",b);
//2.дописываем в конец b строку
strcat(b,"-56789");
printf("%s",b);
//3.то же самое действие, что и 1.
strncpy(b,a,size-4);
printf("%s",b);
//4.то же самое, что и 2.
strcat(b,"abcde");
printf("%s",b);
getch();
}

Проблема в том, что я ожидаю в п.3. увидеть в строке b тот же результат, что и в п.1 и мои ожидания не оправдываются.\n\nMessage edit by Helgi
IP
beast
Участник
To Helgi
может быть это из-за отсутствия двоичного нуля?!
IP
dReam
:: iNFiNiTY ::
electronic universe
To Helgi
так оно и есть, строки то должны завершаться нулём!

IP
dReam
:: iNFiNiTY ::
electronic universe
в пункте 3 перед pintf вставь b[4]=0;
strncpy копирует только сами символы, а о длине строки я думаю заботится должен ты
\n\nMessage edit by dReam
IP
Helgi
Участник
1448
Всем спасибо.
To dReam
Я так и сделал. Но думал, что это лишнее.
IP
dReam
:: iNFiNiTY ::
electronic universe
To Helgi
в C геморно так со строками работать... используй лучше string.h или класс CString
IP
Helgi
Участник
1448
To dReam
Что ты имеешь в виду, когда говоришь "используй лучше string.h"?
А с MFC - возиться неохота.
IP
Страницы(1): 1

Хотите создавать темы и отправлять сообщения? Выполните Вход или Зарегистрируйтесь!




Напишите нам

µƒorum © fryazino.net