Lớp 12Tin Học

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

Đá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.

Bạn đang xem: Bài tập về chuỗi trong c

Ý 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

#include

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 chuoin”);

    gets(s1);

    if (doixung(s1) == 0)

    {

        printf(“chuoi vua nhap khong phai chuoi doi xungn”);

    }

    if (doixung(s1) == 1)

    {

        printf(“chuoi vua nhap la chuoi doi xungn”);

    }

}

 

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

#include

/*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 demn”);

    scanf(“%c”, &n);

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

    {

        printf(“nki tu %c khong co trong chuoin”, n);

    }

}

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

#include

#include

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

    {

        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

#include

#include

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

#include

 

void to_lower(char s[])

{

    for (int i = 0; s[i] != ‘’; i++)

    {

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

        {

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

        }

    }

}

 

void to_upper(char s[])

{

    for (int i = 0; s[i] != ‘’; i++)

    {

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

        {

            s[i] = s[i] – 32;

        }

    }

}

 

void to_title(char str[])

{

    for (int i = 0; str[i] != ‘’; 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

 

Đăng bởi: Đại Học Đông Đô

Chuyên mục: Lớp 12, Tin Học 12

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button