B
BigSerpent
Возникла потребность в написании программы на C. Есть задача - нужно удалить из строки определенные символы. Попытка:
char str2[55]="'djkkci9df odf dfiodfi fdgi dfi'", str3[55]="";
int i,j;
for (j=0,i=0; j<strlen(str2); j++)
{
if (str1[j]!='\'')
{
i++;
str3=str2[j];
}
}
Массив str3 превосходно изменяется. Но при попытке нахождения
strlen(str3) результат = 0.
Попытка
char * str1;
str1=&str3;
printf("%d",strlen(str1));
тоже ничего не дает.
Я представляю, что str3[55]=""; инициализирует строку длиной 55 символов символом '\0'. То есть после изменения первых символов строки str3 в ней оставшиеся равны '\0'. Почему функция вычисления длины строки возвращает 0 ?
И вообще, как можно получить "нормальную строку" в C?
P.S. В C новичок. В программировании не новичок - хорошо знаю Pascal (c 1992), Дельфи (включая ООп и создание собственных компонентов).
char str2[55]="'djkkci9df odf dfiodfi fdgi dfi'", str3[55]="";
int i,j;
for (j=0,i=0; j<strlen(str2); j++)
{
if (str1[j]!='\'')
{
i++;
str3=str2[j];
}
}
Массив str3 превосходно изменяется. Но при попытке нахождения
strlen(str3) результат = 0.
Попытка
char * str1;
str1=&str3;
printf("%d",strlen(str1));
тоже ничего не дает.
Я представляю, что str3[55]=""; инициализирует строку длиной 55 символов символом '\0'. То есть после изменения первых символов строки str3 в ней оставшиеся равны '\0'. Почему функция вычисления длины строки возвращает 0 ?
И вообще, как можно получить "нормальную строку" в C?
P.S. В C новичок. В программировании не новичок - хорошо знаю Pascal (c 1992), Дельфи (включая ООп и создание собственных компонентов).