Напечатать строку в обратном порядке. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Напечатать строку в обратном порядке.



#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 с.)