logo

Bài tập về chuỗi trong c

icon_facebook

Đáp án chi tiết, giải thích dễ hiểu nhất cho câu hỏi Bài tập về chuỗi trong c” cùng với kiến thức tham khảo là tài liệu cực hay và bổ ích giúp các bạn học sinh ôn tập và tích luỹ thêm kiến thức bộ môn Tin học.

Bài tập về chuỗi trong c 

Bài 1: Nhập chuỗi s từ bàn phím. Kiểm tra tính đối xứng của chuỗi vừa nhập.

Ý tưởng: Giả sử chuỗi đối xứng, thực hiện giải thuật bác bỏ. Nếu có 1 cặp ký tự (i, n – i -1) khác nhau => chuỗi không đối xứng. Ở đây n là độ dài của chuỗi.

Hướng dẫn: 

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

 

#include <stdio.h>

#include <string.h>

char doixung(char s1[100])

{

    int i;

    for (i = 0; i < strlen(s1) / 2; i++)

    {

        if (s1[i] != s1[strlen(s1) - 1 - i])

        {

            return 0;

        }

    }

    return 1;

}

int main()

{

    char s1[100];

    printf("xin moi ban nhap chuoi\n");

    gets(s1);

    if (doixung(s1) == 0)

    {

        printf("chuoi vua nhap khong phai chuoi doi xung\n");

    }

    if (doixung(s1) == 1)

    {

        printf("chuoi vua nhap la chuoi doi xung\n");

    }

}

 

Bài 2: Bài tập mảng ký tự có lời giải – Nhập vào 1 chuỗi và 1 ký tự, kiểm tra ký tự có trong chuỗi hay không, nếu có đưa ra số lần xuất hiện của ký tự đó trong chuỗi.

Hướng dẫn: 

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

 

#include <stdio.h>

#include <string.h>

/*dem ki tu xuat hien trong xau*/

char kiemtra(char chuoi[100], char n)

{

    int i, dem = 0;

    for (i = 0; i < strlen(chuoi); i++)

    {

        if (chuoi[i] == n)

        {

            dem++;

        }

    }

    if (dem > 0)

    {

        printf("\nki tu %c trong chuoi xuat hien %d lan ", n, dem);

    }

    if (dem == 0)

    {

        return 1;

    }

}

int main()

{

    char chuoi[100], n;

    int dem = 0;

    printf("nhap chuoi: ");

    gets(chuoi);

    printf("chuoi vua nhap la : %s", chuoi);

    printf("\nxin moi ban nhap vao ki tu can dem\n");

    scanf("%c", &n);

    if (kiemtra(chuoi, n) == 1)

    {

        printf("\nki tu %c khong co trong chuoi\n", n);

    }

}

Bài tập về chuỗi trong c

Bài 3: Nhập vào 1 chuỗi sau đó nhập váo 1 từ và kiểm tra xem từ đó có xuất hiện trong chuỗi trên hay không, nếu có thì xuất hiện bao nhiêu lần.

VD: Nhập vào tran van thoa. Nhập kí tự t → có 2 lần

Hướng dẫn: 

#include <stdio.h>

#include <conio.h>

#include <string.h>

int main()

{

    char xau[50];

    char kitukiemtra;

    int dem;

    printf("Nhap vao mot chuoi: ");

    gets(xau);

    printf("Nhap vao ki tu muon kiem tra: ");

    scanf("%c",&kitukiemtra);

    for(int i=0;i<strlen(xau)-1;i++)

    {

        if(xau[i]==kitukiemtra

        dem++;

    }

    if(dem==0)

    printf("Ki tu %c khong co trong chuoi",kitukiemtra);

    else

    printf("Ki tu %c xuat hien %d lan trong chuoi",kitukiemtra,dem);

    getch();

}

Bài 4: Nhập vào 1 dãy số và đọc dãy số đó.

VD: 123 đọc là một trăm hai mươi ba

Hướng dẫn: 

#include <conio.h>

#include <stdio.h>

#include <string.h>

char doc_so[50];

char *docso(int n)

{

   char doc[10][5]={"","Mot","Hai","Ba","Bon","Nam","Sau","Bay","Tam","Chin"};

   doc_so[0]=0;

   int donvi=n%10;

   n=n/10;

   int chuc=n%10;

   int tram=n/10;

   if(tram>0)

   {

     strcat(doc_so,doc[tram]);

      strcat(doc_so," Tram ");

   }

   if(chuc>0)

   {

      if(chuc==1)

      strcat(doc_so," Muoi ");

      else

      {

         strcat(doc_so,doc[chuc]);

         strcat(doc_so," Muoi ");

      }

   }

   if(donvi>0)

   strcat(doc_so,doc[donvi]);

   return doc_so;

}

int main()

{

   int n;

    printf("Nhap vao mot day so: ");

    scanf("%d",&n);

    if(n==0)

    {

      printf("Khong");

   }

   else

   {

      int tram=n%1000;

      n=n/1000;

      int ngan=n%1000;

      n=n/1000;

      int trieu=n%1000;

      int ty=n/1000;

      if(ty>0)

      {

         printf("%s Ty",docso(ty));

      }

      if(trieu>0)

      {

         printf(" %s Trieu ",docso(trieu));

      }

      if(ngan>0)

      {

         printf(" %s Ngan ",docso(ngan));

      }

      if(tram>0)

      {

         printf(" %s ",docso(tram));

      }

   }

   getch();

}

Bài 5: Chuyển chuỗi nhập từ bàn phím thành chữ viết hoa, viết thường và viết hoa mỗi chữ cái đầu mỗi từ.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

 

#include <stdio.h>

#include <string.h>

 

void to_lower(char s[])

{

    for (int i = 0; s[i] != '\0'; i++)

    {

        if (s[i] >= 'A' && s[i] <= 'Z')

        {

            s[i] = s[i] + 32;

        }

    }

}

 

void to_upper(char s[])

{

    for (int i = 0; s[i] != '\0'; i++)

    {

        if (s[i] >= 'a' && s[i] <= 'z')

        {

            s[i] = s[i] - 32;

        }

    }

}

 

void to_title(char str[])

{

    for (int i = 0; str[i] != '\0'; i++)

    {

        if (str[i] >= 'A' && str[i] <= 'Z') str[i] += 32;

        if (str[i - 1] == ' ' || i == 0)

        {

            if (str[i] >= 'a' && str[i] <= 'z')

                str[i] = str[i] - 32;

        }

    }

}

 

int main()

{

    char s[100];

    int i;

 

    printf("\nEnter a string : ");

    gets(s);

    to_lower(s);

    printf("\nString in Lowercase = %s", s);

    to_upper(s);

    printf("\nString in Uppercase = %s", s);

    to_title(s);

    printf("\nString in Titlecase = %s", s);

    return 0;

}

 

Kết quả chạy:

0

1

2

3

4

5

6

 

Enter a string : nGUYEN van HIEU

 

String in Lowercase = nguyen van hieu

String in Uppercase = NGUYEN VAN HIEU

String in Titlecase = Nguyen Van Hieu

 

icon-date
Xuất bản : 12/03/2022 - Cập nhật : 13/03/2022

Câu hỏi thường gặp

Đánh giá độ hữu ích của bài viết

😓 Thất vọng
🙁 Không hữu ích
😐 Bình thường
🙂 Hữu ích
🤩 Rất hữu ích
image ads