новичка Всего здесь пытаюсь обернуть мою голову вокруг некоторых базовых знаний C, прежде чем принимать углубленный курс Objective-C в течение нескольких недель, так что я прошу прощение, если это пешеход ..функции C, чтобы удалить строку
Назначение заключается в создании функции, которая принимает три аргумента: исходную строку, целое число для начала удаления из этой строки и другое целое число, которое сообщает функции, сколько символов нужно удалить. Примером, приведенным в книге, является стартовая строка «неправильный сын», а затем 4 и 6, оставляя только «сына».
Мое мышление состоит в том, чтобы создать две отдельные строки на основе первого слова и второго, затем объединить их вместе. Пока что я могу извлечь «the», а мой второй цикл, по-видимому, ничего не делает. Это то, что у меня есть до сих пор:
#include<stdio.h>
int main (void)
{
char text[]="the wrong son";
void removeString (char[], int, int);
int s, l;
printf("Enter starting point for removal: ");
scanf("%d",&s);
printf("\nEnter lenght of removal: ");
scanf("%d",&l);
removeString(text, s, l);
printf("\nString after removal = %s",text);
return 0;
}
void removeString (char s1[], int s, int l)
{
printf("s1 = %s, s=%d, l=%d\n", s1, s, l);
char s2[]="";
char s3[]="";
int i,j;
for (; i<s; ++i)
{
s2[i]=s1[i];
}
printf("\n");
for (; j>l; ++j)
{
s3[j]=s1[j];
}
printf("s2 = %s, s3 = %s", s2, s3);
}
Я правильно смущен. Любая помощь приветствуется.
Вам необходимо инициализировать 'i' и' 'j' как INT I; for (i = ...; i
pzaengerПожалуйста, используйте описательные имена для переменных, ваш код трудно понять. –
Вы не делаете 's2' и' s3' достаточно большими. Когда вы не укажете размер массива и инициализируете его строкой, он делает его достаточно большим, чтобы удерживать эту строку. Итак, 'char s2 [] =" ";' равнозначно 'char s2 [1] =" ";' – Barmar