![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Примеры использования функций обработки строк ⇐ ПредыдущаяСтр 2 из 2
Ниже приведены примеры использования данных функций. Пример 1: /* сцепить две строки */ /* в головном файле conio.h содержится функция очистки экрана clrscr()*/ #include < string.h> #include < stdio.h> #include < conio.h> int main(void) { char destination[25]; char *blank = " ", *c = " C++", *turbo = " Turbo"; strcpy(destination, turbo); strcat(destination, blank); strcat(destination, c); printf(" %s\n", destination); getch(); return 0; } Пример 2: /*cцепить две строки, причем из второй строки копировать не более n символов*/ #include < string.h> #include < stdio.h> #include < conio.h> int main(void) { char destination[25]; char *source = " structured "; strcpy(destination, " programming"); strncat(destination, source, 11); printf(" %s\n", destination); getch(); return 0; } Пример 3: /*сравнить две строки в лексикографическом порядке*/
#include < string.h> #include < stdio.h> #include < conio.h> int main(void) { char *buf1 = " aaa", *buf2 = " bbb", *buf3 = " ccc"; int ptr; ptr = strcmp(buf2, buf1); if (ptr > 0) printf(" buffer 2 is greater than buffer 1\n"); else printf(" buffer 2 is less than buffer 1\n"); ptr = strcmp(buf2, buf3); if (ptr > 0) printf(" buffer 2 is greater than buffer 3\n"); else printf(" buffer 2 is less than buffer 3\n"); getch(); return 0; } Пример 4: /*сравнить первые n символов двух строк в лексикографическом порядке*/
#include < string.h> #include < stdio.h> #include < conio.h> int main(void) { char *buf1 = " aaabbb", *buf2 = " bbbccc", *buf3 = " ccc"; int ptr; clrscr(); ptr = strncmp(buf2, buf1, 3); if (ptr > 0) printf(" buffer 2 is greater than buffer 1\n"); else printf(" buffer 2 is less than buffer 1\n");
ptr = strncmp(buf2, buf3, 3); if (ptr > 0) printf(" buffer 2 is greater than buffer 3\n"); else printf(" buffer 2 is less than buffer 3\n"); getch(); return(0); } Пример 5: /*копирование строки*/ #include < stdio.h> #include < string.h> #include < conio.h> int main(void) { char string[10]; char *str1 = " abcdefghi";
strcpy(string, str1); printf(" %s\n", string); getch(); return 0; } Пример 6: /* копировать не более n символов строки s2*/ #include < stdio.h> #include < string.h> #include < conio.h> int main(void) { clrscr(); char string[10]; char *str1 = " abcdefghi"; strncpy(string, str1, 3); string[3] = '\0'; printf(" %s\n", string); getch(); return 0; } Пример 7:
#include < stdio.h> #include < string.h> #include < conio.h> int main(void) { clrscr(); char *string = " Borland International"; printf(" %d\n", strlen(string)); // вывод длины строки getch(); return 0; } Пример 8: #include < string.h> #include < stdio.h> #include < conio.h> int main(void) { clrscr(); char string[20]; char *ptr, c = 'r'; strcpy(string, " This is a string"); // копирование строковой константы в строку string ptr = strchr(string, c); if (ptr) printf(" The character %c is at position: %d\n", c, ptr); else printf(" The character was not found\n"); getch(); return 0; } Пример 9: #include < string.h> #include < stdio.h> #include < conio.h> int main(void) { clrscr(); char string[20]; char *ptr, c = 'r'; strcpy(string, " This is a string"); ptr = strrchr(string, c); // поиск последнего вхождения символа c в строку string if (ptr) printf(" The character %c is at position: %d\n", c, ptr); else printf(" The character was not found\n"); getch(); return 0; } Пример 10: #include < stdio.h> #include < string.h> #include < conio.h> int main(void) { clrscr(); char *string1 = " abcdefghijklmnopqrstuvwxyz"; char *string2 = " onm"; int *ptr; ptr = strpbrk(string1, string2); // поиск в строке string1 любого из множества символов, входящих в string2 if (ptr) printf(" strpbrk found first character: %c\n", ptr); else printf(" strpbrk didn't find character in set\n"); getch(); return 0; } Пример 11: #include < stdio.h> #include < string.h> #include < alloc.h> #include < conio.h> int main(void) { clrscr(); char *string1 = " 1234567890"; char *string2 = " 123DC8"; int length; length = strspn(string1,); // определение длины отрезка строки string1, содержащего символы из множества, входящих в строку string2 printf(" Character where strings differ is at position %d\n", length); getch(); return 0; } Пример 12: #include < stdio.h> #include < string.h> #include < alloc.h> #include < conio.h> int main(void) { clrscr(); char *string1 = " 1234567890"; char *string2 = " 747DC8"; int length; length = strcspn(string1, string2); // определение длины отрезка строки string1, не содержащего символы cтроки string2 printf(" Character where strings intersect is at position %d\n", length); getch(); return 0; } Пример 13: #include < string.h> #include < stdio.h> #include < conio.h> int main(void) { clrscr(); char input[16] = " abc, d"; char *p; p = strtok(, ", "); // выделение из строки input лексемы, разделенные любым из множества символов, входящих в строку ", " if (p) printf(" %s\n", p); p = strtok(NULL, ", "); if (p) printf(" %s\n", p); getch(); return 0; }
|