Đánh giá, nhận xét, review các công ty tuyển dụng
Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: hàm atoi trong C là hàm có tác dụng gì vậy?

  1. #1
    Ngày gia nhập
    08 2008
    Bài viết
    1

    Mặc định hàm atoi trong C là hàm có tác dụng gì vậy?

    Câu hỏi của em như trên, em đã tìm hiểu nhưng ko thấy, chỉ thấy nguời ta rất hay dùng hàm atoi.

  2. #2
    Ngày gia nhập
    01 2008
    Bài viết
    241

    Trích dẫn Nguyên bản được gửi bởi goroshi Xem bài viết
    Câu hỏi của em như trên, em đã tìm hiểu nhưng ko thấy, chỉ thấy nguời ta rất hay dùng hàm atoi.
    chuyển 1 chuỗi sang số
    tham khảo thêm
    http://www.cplusplus.com/reference/c...dlib/atoi.html
    Time

  3. #3
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    Hàm atoi:
    int atoi(char *s);
    Ý nghĩa của khai báo trên là: Chuyển chuỗi s sang giá trị int.
    IF YOU ARE ALONE , I'LL BE YOUR SHADOW
    IF YOU WANT TO CRY, I'LL BE YOUR SHOULDER
    IF YOU NEED HAPPY, I'LL BE YOUR SMILE
    BUT ANYTIME YOU NEED A FRIEND
    IT JUST BE ME !!!

  4. #4
    Ngày gia nhập
    06 2011
    Bài viết
    0

    int sender = atoi(argv[2]);
    câu lệnh chuyển chuỗi
    httvhutceo

  5. #5
    Ngày gia nhập
    07 2010
    Bài viết
    12

    Trích dẫn Nguyên bản được gửi bởi httvhutceo Xem bài viết
    int sender = atoi(argv[2]);
    câu lệnh chuyển chuỗi
    mình có bài tập giải nén tập tin như thế này: nếu tập tin có chuỗi 3a4c$ b5 D# thì khi giải nén ra nó thành "aaacccc$ b D#"
    còn khi nén tập tin thì: nếu tập tin có chuỗi KKKAABDDDD CC@#HTML khi nén lại thành "3KAAB4D CC@#HTML"
    phần nén mình đã làm được rùi, còn phần giải nén thì mình đang gặp rắc rối là ko biết khi mình duyệt qua từng kí tự thì làm sao chuyển chuổi thành số ví dụ; duyệt qua từng kí tự của chuỗi nếu gặp kí tự/chuỗi '3' thì làm sao chuyển thành số 3. Đây là code của mình

    #include<iostream.h>
    #include<fstream.h>
    #include<string.h>
    #include<stdio.h>
    #include<stdlib.h>

    char test[255];
    int a[255];
    int dem;
    void nen()
    {
    dem=1;
    int flag=0;
    ifstream fi1="DATA1.INP";
    ofstream fo1="ENCODE.OUT";
    while(1)
    {
    if(fi1.eof())
    break;
    else
    {
    fi1.getline(test,255,'\n');
    if(strlen(test)>1)
    {
    for(int i=1;i<=strlen(test);i++)
    {
    if(test[i]==test[i-1])
    dem++;
    else
    flag++;
    if(flag==1)
    {
    if(dem>2)
    {
    fo1<<dem<<test[i-1];
    dem=1;
    flag=0;
    }
    else if(dem==1)
    fo1<<test[i-1];
    else if(dem==2)
    fo1<<test[i-2]<<test[i-1];
    dem=1;
    flag=0;
    }
    }

    }
    }
    }
    }

    void giainen()
    {
    dem=1;
    int flag=0;
    ifstream fi1="DATA2.INP";
    ofstream fo1="DECODE.OUT";
    while(1)
    {
    if(fi1.eof())
    break;
    else
    {
    fi1.getline(test,255,'\n');
    if(strlen(test)>0)
    {
    for(int i=1;i<=strlen(test);i++)
    {
    if(atoi(test[i-1])>=3)
    for(int i=0;i<atoi(test[i-1]);i++)
    fo1<<test[i];
    else
    fo1<<test[i];
    }

    }
    }
    }
    }

    int main()
    {
    int chon;
    while(1)
    {
    cout<<"Nhap 1 de nen"<<endl;
    cout<<"Nhap 2 de giai nen"<<endl;
    cout<<"Nhap 3 de thoat"<<endl;
    cout<<"Ban chon: ";
    cin>>chon;
    if(chon==1)
    {
    nen();
    }
    else if(chon==2)
    {
    giainen();
    }
    else if(chon==3)
    {
    break;
    }
    else
    cout<<"Lua chon khong thich hop, moi ban chon lai!!!"<<endl<<endl;
    }
    return 0;
    }


    ở hàm giainen() có vòng lặp for mình có viết if(atoi(test[i-1])>=3) là để chuyển từ kí tự/chuỗi sang số nhưng khi chạy nó báo lỗi: error C2664: 'atoi' : cannot convert parameter 1 from 'char' to 'const char *'
    Làm sao để hàm này chạy được vậy các bạn?

    tập tin DATA1.INP:
    1
    KKKAABDDDD CC@#HML
    tập tin DATA2.INP:
    1
    3a4c$ b5 D#

    tập tin nén của DATA1.INP có dạng:3KAAB4D CC@#HML
    tập tin giải nén của DATA2.INP có dạng:aaacccc$ b D#

    mong các bạn giúp đỡ

  6. #6
    Ngày gia nhập
    04 2013
    Bài viết
    7

    Mặc định hàm atoi trong C là hàm có tác dụng gì vậy?

    Thử code này thử bạn.

    C++ Code:
    1. #include<iostream>
    2. #include<fstream>
    3. #include<string.h>
    4. using namespace std;
    5. char test[255];
    6. int a[255];
    7. int dem;
    8. void nen()
    9. {
    10. dem=1;
    11. //int flag=0;
    12. ifstream fi1 ("DATA1.INP");
    13. ofstream fo1 ("ENCODE.OUT");
    14. while(1)
    15. {
    16. if(fi1.eof())
    17. break;
    18. else
    19. {
    20. fi1.getline(test,255,'\n');
    21. if(strlen(test)>1)
    22. {
    23. for(int i=1;i<=strlen(test);i++)
    24. {
    25.     dem=1;
    26.     if(test[i-1]==test[i]){
    27.        while(test[i-1]==test[i]){ //KKKAABDDDD CC@#HML
    28.           i++;dem++;
    29.        }
    30.     if(dem>2)
    31.     fo1<<dem<<test[i-1];
    32.     else fo1<<test[i-1]<<test[i-1];
    33. }
    34. else fo1<<test[i-1];
    35. }
    36.  
    37. }
    38. }
    39. }
    40. }
    41.  
    42. void giainen()
    43. {
    44. dem=1;
    45. int flag=0;
    46. ifstream fi1("DATA2.INP");
    47. ofstream fo1("DECODE.OUT");
    48. while(1)
    49. {
    50. if(fi1.eof())
    51. break;
    52. else
    53. {
    54. fi1.getline(test,255,'\n');
    55. if(strlen(test)>1)
    56. {
    57. for(int i=1;i<=strlen(test);i++)
    58. {
    59. int di=0;
    60. if(test[i-1]>='0'&&test[i-1]<='9'){
    61.     di+=10*(test[i-1]-'0');
    62.     if(test[i]<='9'&&test[i]>='0'){
    63.        while(test[i]>='0'&&test[i]<='9')
    64.              {di+=test[i]-'0'; i++;}
    65.     }
    66.     else  {di=test[i-1]-'0';}
    67.     if(test[i]!=' '){
    68.        if(di!=2)
    69.          for(int j=1;j<=di;j++)
    70.             fo1<<test[i];
    71.        else fo1<<test[i]<<test[i];
    72.     }
    73.     else fo1<<test[i];
    74.     i++;
    75. }
    76. else
    77.     fo1<<test[i-1];
    78. }
    79.  
    80. }
    81. }
    82. }
    83. }
    84.  
    85. int main()
    86. {
    87. int chon;
    88. while(1)
    89. {
    90. cout<<"Nhap 1 de nen"<<endl;
    91. cout<<"Nhap 2 de giai nen"<<endl;
    92. cout<<"Nhap 3 de thoat"<<endl;
    93. cout<<"Ban chon: ";
    94. cin>>chon;
    95. if(chon==1)
    96. {
    97. nen();
    98. }
    99. else if(chon==2)
    100. {
    101. giainen();
    102. }
    103. else if(chon==3)
    104. {
    105. break;
    106. }
    107. else
    108. cout<<"Lua chon khong thich hop, moi ban chon lai!!!"<<endl<<endl;
    109. }
    110. return 0;
    111. }

Các đề tài tương tự

  1. Lệnh atoi không convert được từ string sang con trỏ
    Gửi bởi sonic trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 2
    Bài viết cuối: 12-11-2013, 11:15 AM
  2. Mã nguồn C Lỗi Sử dụng hàm atoi() trong lập trình C như thế nào?
    Gửi bởi tuansaker3291 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 30-08-2011, 08:25 PM
  3. hàm atoi có tác dụng gì?
    Gửi bởi ngonchanloi89 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 10-07-2010, 12:35 PM
  4. Hỏi về thử viện khi dùng hàm itoa,atoi??
    Gửi bởi leanh215 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 25-03-2009, 12:03 PM
  5. Thắc mắc về hàm atoi
    Gửi bởi nam402MTH0389 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 05-12-2007, 11:42 PM

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