КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Копирование строк
Определение длины строки Сцепление строк Стандартные функции обработки строк Обработка строковых данных К любому символу строки можно обратиться как к элементу одномерногомассива, например, запись st[i] определяет i-ый символ в строке st. Поэтому при решении некоторых задач обработку строковых данных можно проводить посимвольно, организуя циклы для просмотра строки. Например: Дано предложение. Определите количество слов в нем. Решение: Слова в предложении разделяются пробелами. Подсчитав количество пробелов, можно определить количество слов, учитывая, что между словами введен только один пробел. #include "stdafx.h" #include<string.h> int main() { char slova[120]; int i, n, k=1; printf("Введите предложение\n"); gets(slova); n= strlen(slova); // функция strlen() возвращает длину строки for(i=0;i<n; i++) if(slova[i]==' ')k++; //поиск и подсчет пробела printf("k=%d\n",k); return 0; } Большинство действий над строками реализуется с помощью стандартных функций. Библиотека языка Си содержит большое количество таких функций, прототипы которых определяются в заголовочном файле string.h. Рассмотрим некоторые из них. Сравнение строк: strcmp(str1,str2) – сравнивает две строки str1 и str2 и возвращает 0, если они одинаковы; результат отрицателен, если str1<str2 и положителен, если str1>str2. strncmp(str1, str2, kol) – сравниваются части строк str1 и str2 из kol символов. Результат равен 0, если они одинаковы. Сравнение двух строк выполняется последовательно слева неправо с учетом кодировки символов. Например, сравнивая стоки st1 и st2 char st1[10]="Пример"; char st2[10]="ПPимер"; int a; if (strcmp(st1,st2)>0) a=1; else a=2; переменной а будет присвоено значение 1, так как код символа 'р' больше кода символа 'Р'. strcat(str1,str2) - сцепление строк в порядке их перечисления. strncat(str1,str2,kol) – приписывает kol символов строки str2 к строке str1. Функция служит для объединения двух строк в одну. Например, в результате выполнения операторов: char fam[] = "Андреева С.В. "; char pr[7]= " "; //7 пробелов strcat(fam,pr); printf(“|%20s|”, fam); на экран выведется строка: |Андреева С.В. | Заметим, что строка вывода занимает поле в 20 позиций, а переменная fam располагается в левой части поля. strlen(str) – определяет длину строки str. Пример.Определить длину строки charfam[] = "Андреева С.В."; printf("%d",strlen(fam)); функция strlen() вернёт значение равное 13 (символов). strcpy (str1,str2) – копирует строку str2 в строку str1. strncpy (str1, str2, kol) – копирует kol символов строки str2 в строку str1.
Пример. Скопировать фамилию сотрудника в переменную fam и вывести на экран. #include "stdafx.h" #include<string.h> int main() { char fam[15]; char *str = " Андреева С.В."; strcpy(fam, str); printf("|%s|\n", fam); return 0; }
В результате выполнения данных операторов на экран будет выведена строка: |Андреева С.В.|
Дата добавления: 2014-12-26; Просмотров: 369; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |