Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Напечатать строку в обратном порядке. ⇐ ПредыдущаяСтр 4 из 4
#include <stdio.h> #include <stdlib.h> //#include <conio.h> const int M=50; int main(){ char str[M],str1[M]; int i,c=0,b=0; printf("Введите строку:\n"); gets(str); for(i=0;(str[i]<=48||str[i]>=57)&&str[i]!='\0';i++) {} if(str[i]!=0) while(str[i]>=48&&str[i]<=57&&str[i]!='\0'||str[i]=='.') { str1[c]=str[i]; if(str[i]=='.') b=c; c++; i++; } if(!b) b=c; str1[c]='\0'; printf("Целая часть числа %s содержит %d цифр.\n",str1,b); str[0]=getch; return 0; } Пример 71. Написать функцию void check_type(int с), которая проверяет принадлежность символа 'с' к одному или нескольким из перечисленных выше типов. #include <stdio.h> #include <stdlib.h> //#include <conio.h> const int M=50; void check_type(int); int main(){ char str[M],str1[M]; int i=0; printf("Введите строку:\n"); gets(str); while(str[i]!='\0'){ check_type(str[i]); i++; } str[0]=getch; return 0; } void check_type(int c){ if(c>='0'&&c<='9') printf("%c - цифра, печатаемый символ.\n",c); else if(c>='a'&&c<='z') printf("%c - буква, строчная, печатаемый символ.\n",c); else if(c>='A'&&c<='Z') printf("%c - буква, заглавная, печатаемый символ.\n",c); else if(c>='!'&&c<='/') printf("%c - знак, печатаемый символ.\n",c); else if(c==' ') printf("%c - пробел, печатаемый символ.\n",c) else printf("%c - непечатаемый символ.\n",c); } Пример 72. Описать массив символов s и инициализировать его строкой "1234567890". динамически выделить память для копии строки. Выполнить копирование. • С помощью функции strncpy заменить в копии строки три символа. #include <stdio.h> #include <string.h> #include <stdlib.h> int main(){ char s[]="1234567890",mstr[5]; char *str=(char*)malloc(strlen(s)); str=strcpy(str,s); printf("Копия строки:\n%s\n",str); printf("Введите строку:\n"); gets(mstr); str+=3; str=strncpy(str,mstr,strlen(mstr)); str-=3; printf("Измененная строка:\n%s\n",str); free(str); return 0; } Пример 73. С клавиатуры вводятся четыре строки разной длины (не более 10 символов). Память для каждой из них выделяется динамически. Необходимо объединить эти строки их в одну.
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(){ char *s1=(char*)malloc(10), *s2=(char*)malloc(10), *s3=(char*)malloc(10), *s4=(char*)malloc(10); printf("Введите строку 1:\n"); gets(s1); printf("Введите строку 2:\n"); gets(s2); printf("Введите строку 3:\n"); gets(s3); printf("Введите строку 4:\n"); gets(s4); char *s=(char*)malloc(strlen(s1)+strlen(s2)+strlen(s3)+strlen(s4)); s=strcpy(s,s1); s+=strlen(s1); s=strcpy(s,s2); s+=strlen(s2); s=strcpy(s,s3); s+=strlen(s3); s=strcpy(s,s4); s-=strlen(s1)+strlen(s2)+strlen(s3); printf("%s\n",s); free(s); free(s4); free(s3); free(s2); free(s1); return 0; } Пример 74. ввести четыре символьные строки; найти среди них "наибольшую". Промежуточные результаты выводить на экран в виде сообщения типа <строка-1> "больше"/"меньше" <строка-2>. • напечатать "наибольшую" строку. #include <stdio.h> #include <string.h> #include <stdlib.h> int main(){ int a; char *s1=(char*)malloc(10),*m,*m1,*m2, *s2=(char*)malloc(10), *s3=(char*)malloc(10), *s4=(char*)malloc(10); printf("Введите строку 1:\n"); gets(s1); printf("Введите строку 2:\n"); gets(s2); printf("Введите строку 3:\n"); gets(s3); printf("Введите строку 4:\n"); gets(s4); //------------------------------------- if(strcmp(s1,s2)==0){ printf("%s равна %s\n",s1,s2); m1=s1; } else if(strcmp(s1,s2)>0){ printf("%s больше %s\n",s1,s2); m1=s1; } else{ printf("%s меньше %s\n",s1,s2); m1=s2; } //------------------------------------- if(strcmp(s3,s4)==0){ printf("%s равна %s\n",s3,s4); m2=s3; } else if(strcmp(s3,s4)>0){ printf("%s больше %s\n",s3,s4); m2=s3; } else{ printf("%s меньше %s\n",s3,s4); m2=s4; } //------------------------------------- if(strcmp(m1,m2)==0){ printf("%s равна %s\n",m1,m2); m=m1; } else if(strcmp(m1,m2)>0){ printf("%s больше %s\n",m1,m2); m=m1; } else{ printf("%s меньше %s\n",m1,m2);
m=m2; } //------------------------------------- printf("Наибольшая строка:\n%s\n",m); free(s4); free(s3); free(s2); free(s1); return 0; } Пример 75. Дописать фрагмент программы, выполнить ее, пояснить текст и результаты. char * ptr; ptr = strtok (" Feb. 15, 2001 ", "./"); #include <stdio.h> #include <string.h> #include <stdlib.h> int main(){ char *ptr,str[]="Feb. 15, 2001"; ptr=strtok(str, "./"); printf("%s\n",ptr); while(ptr){ ptr=strtok(NULL,".,-/"); if(ptr) printf("%s\n",ptr); } return 0; }
Пример 76. Создать список фамилий в виде одной символьной строки. В цикле в режиме диалога вводить фамилию и выводить сообщение, есть ли такой человек в списке. #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> int main(){ char ch,s[]="1. Иванов И.И. 2. Петров П.П. 3. Сидоров С.С. 4. Александров А.А.",*str; char* s1=(char*)malloc(10); do{ printf("Введите фамилию:\n"); str=NULL; gets(s1); str=strstr(s,s1); if(str) printf("Человек найден под номером %c\n",str[-3]); else printf("Человек остутствует.\n"); printf("Повторить поиск? (y/n): "); ch=getch(); printf("\n"); } while(ch=='y'); free(s1); return 0; } Пример 77. Написать программу, в которой описать строку s. Заменить символы с третьего по пятый на "минус", а с шестого и до конца строки - на "плюс". #include <stdio.h> #include <string.h> #include <stdlib.h> int main(){ char str[]="1234567890",*s; s=str; s+=3; s=strnset(s,'-',3); s+=3; s=strset(s,'+'); s-=6; printf("%s\n",s); return 0; } Пример 78. ввести строку; с помощью функций str _ dup () и strdup () создать две копии введенной строки; вывести на экран две копии строки. #include <stdio.h> #include <string.h> #include <stdlib.h> char* str_dup(const char*); int main(){ char *s,*s_,*str=(char*)malloc(10); gets(str); s=strdup(str); s_=str_dup(str); printf("%s\n",s); printf("%s\n",s_); free(s_); free(s); free(str); return 0; } char* str_dup(const char* s){ char *s1=(char*)malloc(strlen(s)); s1=strcpy(s1,s); return s1; }
|
||||||
Последнее изменение этой страницы: 2021-08-16; просмотров: 94; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.100.180 (0.018 с.) |