Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 6 của 6
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    bài toán đảo chuỗi kí tự trong lập trình C

    Mã:
    #include<conio.h>#include<stdio.h>void main(){int j;char name[30];puts(" nhap ten");gets(name);for(j=29;j>=0;j--)printf("%c",name[j]);getch();}
    chuơng trình này là chuơng trình đảo thứ tự chuỗi, nếu mình nhập chưa dến 30 kí tự thì khi đảo ngược chuỗi sẽ xuất hiện các kí tự lạ. làm thế nào để giải quyết vấn đề này

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    bạn thử cái này xem thế nào nha!

    Mã:
    #include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>int main (){    clrscr ();    char* p;    int i,n;    p = (char*)malloc(128);    printf("
     Nhap xau ki tu :");    gets (p);    n = strlen(p);    printf("
     xau dao: 
    ");    for( i = n-1; i>=0; i --)    putchar(p[i]);    printf("
    ");    free(p);    getch ();    return 0;}

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi trinhthanhkstn
    Mã:
    #include<conio.h>#include<stdio.h>void main(){int j;char name[30];puts(" nhap ten");gets(name);for(j=29;j>=0;j--)printf("%c",name[j]);getch();}
    chuơng trình này là chuơng trình đảo thứ tự chuỗi, nếu mình nhập chưa dến 30 kí tự thì khi đảo ngược chuỗi sẽ xuất hiện các kí tự lạ. làm thế nào để giải quyết vấn đề này
    Nếu chỉ nhâp 10 kí tự thì lấy đâu name[29], name[28] mà in ra.
    Dùng cái này bác ah.
    for (j=strlen(s)-1; j>=0; j--)
    Nhớ thêm cho cái string.h vào

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    theo mình thì nên dùng hàm strrev thì sẽ ngắn hơn
    Mã nguồn PHP:
    #include<stdio.h> #include<conio.h> #include<string.h> #include<alloc.h> main () { char xau[50]; printf("nhap xau : "); gets(xau); printf("chuoi sau khi dao nguoc la : %s ",strrev(xau)); getch(); }  

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi dehin
    Nếu chỉ nhâp 10 kí tự thì lấy đâu name[29], name[28] mà in ra.
    Dùng cái này bác ah.
    for (j=strlen(s)-1; j>=0; j--)
    Nhớ thêm cho cái string.h vào
    cái kí tự lạ đó làm sao để khắc phục nó vậy bạn ?
    [IMG]images/smilies/icon_question.gif[/IMG]

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi trinhthanhkstn
    Mã:
    #include<conio.h>#include<stdio.h>void main(){int j;char name[30];puts(" nhap ten");gets(name);for(j=29;j>=0;j--)printf("%c",name[j]);getch();}
    chuơng trình này là chuơng trình đảo thứ tự chuỗi, nếu mình nhập chưa dến 30 kí tự thì khi đảo ngược chuỗi sẽ xuất hiện các kí tự lạ. làm thế nào để giải quyết vấn đề này
    Thứ 1 : Đây không phải là hàm đảo chuỗi bạn ạ, mà đây là hàm xuất ngược chuỗi
    Thứ 2 : Vì các ký tự mà bạn chưa nhập là những ký tự rác.

    Bạn có thể dùng hàm strrew(name) để đảo chuỗi, sau đó xuất ra bằng hàm puts(name)

    Tham khảo nhé :







 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •