C_Kurs_Lekt / C_II_семестр / 08-1_пример работы со строками
.pdf#include <stdio.h> //Лысый Д.А. пример работы со строками
#include <string.h> #include <stdlib.h> #include <conio.h>
void main() {
char *str, str1[]="Эта тестоваястрока будет обрабатываться", *stemp;
char *c="-", *c1="строка", *c2="последовательность"; int n;
clrscr();
printf("Исходная строка ===> %s\n", str1);
// удаление 1 символа начиная с 1 го символа в "с" str=strstr(str1,c); memmove(str,str+1,strlen(str));
printf("строка после копирования ===> %s\n", str1);
// замена в строке str1 последовательности c1 на c2 stemp=(char *) calloc(strlen(str1)+strlen(c2)+1, 1); printf("stemp ==> %s\n",stemp); str=strstr(str1,c1); strncpy(stemp,str1,strlen(str1)-strlen(str)); printf("stemp ==> %s\n",stemp); memcpy(stemp+strlen(stemp),c2,strlen(c2)+1); printf("stemp ==> %s\n",stemp);
// memcpy(stemp+strlen(stemp),str+strlen(c1),strlen(str)+1); memcpy(stemp+strlen(stemp),str+strlen(c1),strlen(str)-
strlen(c1)+1);
printf("stemp ==> %s\n",stemp);
for (n=0; stemp[n] != '\б' ; n++);
printf( "Первое б находится в %d позиции\n", n+1);
// разбитие на строки, разделитель пробел str = strtok(stemp," ");
while (str != NULL) { printf("%s\n", str); str = strtok(NULL," ");
}
}
/* Резудьтаты работы программы Исходная строка ===> Эта тестоваястрока будет обрабатываться
строка после копирования ===> Эта тестовая строка будет обрабатываться
stemp ==>
stemp ==> Эта тестовая
stemp ==> Эта тестовая последовательность
stemp ==> Эта тестовая последовательность будет обрабатываться Первое б находится в 33 позиции Эта тестовая
последовательность
будет обрабатываться */