for i:=1 to k do
if (Copy(mas_sl[i], length (mas_sl[i])-2,3)=’ing’)
then begin Delete (mas_sl[i], length (mas_sl[i]-2,3)
Insert (‘ed’, mas_sl[i], length(mas_sl[i])+1);
end. очередь указателем на другую переменную типа массив, поэтому можно использовать указатель на указатель.
Количество обрабатываемых данных неизвестно. Обрабатывается информация о студентах, сведенье о каждом студенте включает в себя: ФИО, год рождения, группа, № курса. Выдать список всех студентов заданного курса.
main()
[struct stud
[char fio[40];
char gr[10];
int course;} *uk_mas;
intkol st, i,с;
printf("количество:");
sсаnf("%d", &kol st);
uk_mas=(struct stud~)malloc(kolst*sizeof(struct stud)); - выделяем память под количество студентов
for(i=0;i<kol st;i++)
{
рrintf"Данные для %d студента\n ", i+1);
printf(" ФИО:");
sсаnf("%s", &ukmаs[i].fio);
printf("год рождения:");
sсаnf("%s",&uk rnаs[i].gr);
printf("курс:");
sсаnf("%d",&uk mas[i].course);
}
рrintf("Введите № курса");
sсаnf("%d",&c);
for(i=0;i<kol st;i++)
if(uk mas[i].course==c)
рrintf"\n%s", ukmas[i].fio);
free(uk mas);
}
п.11.Строки.
В языке Си и С++ отдельного строкового типа нет, строка в Си и С++ — это одномерный массив типа char заканчивающийся нулевым символом, который является признаком конца строки. Для нулевого символа определена специальная константа '~0'(символ след ноль).
char str[10]; - мы задали обычный одномерный массив, но если мы хотим трактовать его как строку символов, то это будет строка максимум из 10 элементов, а последний байт зарезервирован под нулевой символ.
char *str; - это описание представляет собой указатель на одномерный массив элементов символьного типа с начальным адресом str и пока неопределенным числом элементов.
Язык Си допускает использование строковых констант (последовательность символов, заключенных в “ “).
сhаr *str = " string " — компилятор статически зарезервирует 7 байт, 7-oN байт для '~0', а str будет хранить адрес начала строки.
Если инициализируем строку посимвольно, то необходимо добавить в конец строки '~0':
str[0]= 's'
str[6]= '\0'
Для работы со строками существует специальная библиотека, прототипы функций этой библиотеки находятся в файле " string.h ".
Все функции библиотеки работают со строками, оканчивающимися символом '\0'.
Функции работы со строками
1.копирование строк.
char * strcpy ( char *stringl,char * string2)
Функция копирует строку, адрес которой определяется значением аргумента string2, включая '\0', по адресу, определенному string1 и возвращает значение аргумента string l.
2. Склеивание строк <конкатенацияМ.
char ~strcat(char ~stringl, char *string2)
Добавляет строку, заданную значением аргумента string2, в конец строки, адрес которой задается значением аргумента stringl, записывая в конец строки результата '\0' и возвращает указатель на сцепленную строку (string 1).
3. Сравнение строк.
int strcmp(char *stringl, char *string2)
Возвращает О, если stringl=string2. Если 1-ая меньше чем 2-ая, то возвращает значение меньшее О, больше О, если 2-ая больше первой. Данная функция сравнивает строки, считая символы верхнего и нижнего регистра эквивалентными (только для латинских).
4. Длина дроки.
int str1en(char *string)
Возвращает длину строки в байтах, причем нулевой байт не учитывается.
5. Поиск первого вхождения заданного символа.
char *strstr(char *stringl, char ch)
Осуществляет поиск первого вхождения ch и возвращает указатель на первый его символ. Если символ не найден, то возвращается константа NULL.
б. Поиск вхождения строки в строку.
char 'strstr(char *stringl, char *string2)
Возвращает указатель на первое вхождение подстроки string2 в строку stringl, если не найдено, то NULL.
7. Преобразование строки в нижние регистры.
char "strlwr(char *string)(только для латинских)
8. Перевод строки в нижние регистры.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.