Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: đổi chữ hoa thành chữ thường trong C va ngược lại (gấp)

  1. #1
    Ngày gia nhập
    04 2011
    Bài viết
    9

    Mặc định đổi chữ hoa thành chữ thường trong C va ngược lại (gấp)

    bài tập của thầy mình là gõ thường thành hoa, gõ hoa thành thường, gõ số thành chính số đó. (chi go 1 ky tu thoi), nhưng nếu ký tự gõ vào không phải những trường hợp trên thì hiện thông báo" ban da nhap mot ky tu dat biet).
    vay la het
    bài mình làm chạy được 2/3 thôi. Vì nhập ký tự đặt biệt hiện lên ký tự đặt biệt luôn.
    các bạn giúp mình với

    bài của mình đây: mới học còn gà lắm các bạn giúp đỡ nha.
    Code:
    #include <stdio.h>
     main()
    {
      char s[100];
      int i;
    
      printf("\nNhap vao mot chuoi : ");
      gets(s);
      i = 0;
      while (s[i] != 0)
      {
        if (isalpha(s[i]))
          if (s[i] < 97)
            s[i] += 32;
          else
    	s[i] -= 32;
          else
            printf("\n ky tu ban nhap vao khong dung");
        i++;
      }
      printf("\nChuoi bien thanh : %s", s);
    
      getch();
    }
    Đã được chỉnh sửa lần cuối bởi kitti : 24-04-2011 lúc 08:28 PM. Lý do: làm liền các bài viết spam

  2. #2
    Ngày gia nhập
    04 2010
    Bài viết
    1,537

    Trích dẫn Nguyên bản được gửi bởi tuanpro2008 Xem bài viết
    bài của mình đây: mới học còn gà lắm các bạn giúp đỡ nha.
    Code:
    #include <stdio.h>
     main()
    {
      char s[100];
      int i;
    
      printf("\nNhap vao mot chuoi : ");
      gets(s);
      i = 0;
      while (s[i] != 0) /* không cần phải != 0, s[i] là tự động xét <> 0 */
      {
        if (isalpha(s[i]))
          if (s[i] < 97) /* dùng số khó đọc lắm, dùng thẳng ký tự tốt hơn */
            s[i] += 32;
          else
    	s[i] -= 32;
          else
            printf("\n ky tu ban nhap vao khong dung");
        i++;
      }
      printf("\nChuoi bien thanh : %s", s);
    
      getch();
    }
    sửa lại:

    C Code:
    1. char h2t = 'a' - 'A';
    2. i = -1;
    3. while (s[++i])
    4. {
    5.    if (s[i] >= 'A' && s[i] <= 'Z') s[i] += h2t;
    6.    else if (s[i] >= 'a' && s[i] <= 'z') s[i] -= h2t;
    7. }

  3. #3
    Ngày gia nhập
    09 2008
    Bài viết
    41

    Em code thế này có lỗi gì không mong các anh chỉ giáo

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<string.h>
    4.  
    5. int main()
    6. {
    7.     char x[200];
    8.     printf("\n Nhap vao 1 chuoi: ");
    9.     fflush(stdin);
    10.     gets(x);
    11.     int n=strlen(x);
    12.     for(int i=0;i<n;i++)
    13.     {
    14.         if(x[i]>=97&&x[i]<=122)
    15.         x[i]=x[i]-32;
    16.         else if(x[i]>=65&&x[i]<=90)
    17.         x[i]=x[i]+32;
    18.     }
    19.     printf("\n Chuoi sau khi thay doi la %s",x);
    20.     getch();
    21.     return 0;
    22. }

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    2,991

    nên dùng toupper và tolower cho nhanh
    đỡ quan tâm nhiều đến các hằng số
    ^_,^
    Mình là 1 con gà trong công nghệ.
    Nếu mình có nói gì làm bạn không vui thì mong bạn bỏ qua cho, vì cá nhân mình còn gà lắm, và mình có ý tốt thôi.

    Bùi Tấn Quang

  5. #5
    Ngày gia nhập
    04 2011
    Bài viết
    9

    Code:
    /* Chuong trinh nhap vao ki tu c. Doi ra hoa, thuong */
    #include <stdio.h>
    #include <conio.h>
    main()
    {
    char c;
    printf("Nhap vao 1 ki tu: ");
    scanf("%c", &c);
    if (c >= 'a' && c <= 'z')         //hoac if(c >= 97 && c <= 122)
    {
    c = c- 32;                      //doi thanh chu in hoa
    printf("Ki tu thuong la: %c.\n", c);
    }
    else if(c >= 'A' && c <= 'Z') //hoac if(c >= 65 && c <= 90)
    {
    c = c + 32; //doi thanh chu thuong
    printf("Ki tu ing la: %c.\n", c);
    }
    else if(c >= '0' && c <= '9') //hoac if(c >= 48 && c <= 57)
    printf("Ki tu Ban vua nhap la so %c.\n", c);
    else
    printf("Ban da nhap ki tu dat biet.\n", c);
    getch();
    }
    TÔI ĐÃ LÀM NÓ CHẠY ĐƯỢC RỒI, CẢM ƠN CÁC BẠN ĐÃ GIÚP MÌNH

  6. #6
    Ngày gia nhập
    03 2011
    Bài viết
    55

    Mặc định đổi chữ hoa thành chữ thường trong C va ngược lại (gấp)

    anh lãng mạn cho đoạn code toupper và tolower đi , e ko hiểu về thuật toán này

  7. #7
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    841

  8. #8
    Ngày gia nhập
    08 2010
    Nơi ở
    Moscow, Russia Federation
    Bài viết
    913

    Thay bằng dùng toupper, tolower, hoặc dùng mã ascii có thể sử dụng một map ánh xạ.
    Không gian nguồn là chuỗi kí tự từ a-z (hoặc từ A-Z), không gian đích là một chuỗi kí tự từ A-Z (hoặc từ a-z).
    Mời các bạn ghé thăm blog cá nhân của tôi

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn