/* программа создает копию исходной строки и из нее удаляет все вхождения первого слова*/
# include <string.h>
# include <stdio.h>
# include <stdlib.h>
# include <malloc.h>
int main(void)
{
char *str=(char*)malloc(sizeof(char)*100), *str2=NULL;
gets(str);
str=(char*)realloc(str,sizeof (char)*(strlen(str)+1));
//создаем копию исходной строки
char *str4=(char*)malloc(strlen(str)+1);
strcpy(str4,str);
str2=strchr(str4,' ');// находим положение пробела
//выделяем первое слово до пробела
char *str3=(char*)malloc(sizeof(char)*(str2-str4+1));
strncpy(str3,str4,str2-str4+1);
// обязательно в конец слова добавляем символ конца строкеи, иначе будет вносится муссор из памяти
str3[str2-str4]='\0';
// до тех пор пока в строке встречается данное слово, мы его удаляем
while(strstr(str4,str3))
{
char *s=strstr(str4,str3);
strcpy(s,s+strlen(str3)+1);
}
//выводим исходную строку
puts(str);
//выводим строку без вхождения первого слова
puts(str4);
free(str);
free(str4);
free(str3);
system("pause");
return 0;
}
# include <string.h>
# include <stdio.h>
# include <stdlib.h>
# include <malloc.h>
int main(void)
{
char *str=(char*)malloc(sizeof(char)*100), *str2=NULL;
gets(str);
str=(char*)realloc(str,sizeof (char)*(strlen(str)+1));
//создаем копию исходной строки
char *str4=(char*)malloc(strlen(str)+1);
strcpy(str4,str);
str2=strchr(str4,' ');// находим положение пробела
//выделяем первое слово до пробела
char *str3=(char*)malloc(sizeof(char)*(str2-str4+1));
strncpy(str3,str4,str2-str4+1);
// обязательно в конец слова добавляем символ конца строкеи, иначе будет вносится муссор из памяти
str3[str2-str4]='\0';
// до тех пор пока в строке встречается данное слово, мы его удаляем
while(strstr(str4,str3))
{
char *s=strstr(str4,str3);
strcpy(s,s+strlen(str3)+1);
}
//выводим исходную строку
puts(str);
//выводим строку без вхождения первого слова
puts(str4);
free(str);
free(str4);
free(str3);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
int main(void)
{
setlocale( LC_ALL,"Russian" );
int input;
int counter = 0; // счетчик введенных чисел
int * values = NULL; // переменная для создания динамического массива
int * many_numbers;
do {
printf("Введите целое значение (0 - выход): ");
scanf("%d",&input);
counter++
// при добавлении нового числа, увеличиваем массив на 1
many_numbers = (int*) realloc (values, counter * sizeof(int));
if (many_numbers != NULL)
{
values = many_numbers;
// добавить к массиву только что введённое число
values[counter - 1] = input;
}
else
{
free (values); // удалить массив
printf("Ошибка перевыделения памяти!");
return 1; // завершить работу программы
}
} while (input != 0); // пока не введён 0
printf("Введенные числа: ");
return 0;
}
#include <stdlib.h>
#include <iostream>
int main(void)
{
setlocale( LC_ALL,"Russian" );
int input;
int counter = 0; // счетчик введенных чисел
int * values = NULL; // переменная для создания динамического массива
int * many_numbers;
do {
printf("Введите целое значение (0 - выход): ");
scanf("%d",&input);
counter++
// при добавлении нового числа, увеличиваем массив на 1
many_numbers = (int*) realloc (values, counter * sizeof(int));
if (many_numbers != NULL)
{
values = many_numbers;
// добавить к массиву только что введённое число
values[counter - 1] = input;
}
else
{
free (values); // удалить массив
printf("Ошибка перевыделения памяти!");
return 1; // завершить работу программы
}
} while (input != 0); // пока не введён 0
printf("Введенные числа: ");
return 0;
}
