Code đếm số từ trong xâu bị sai

Mình muốn đếm số từ từ input tùy ý của mình mà output toàn báo đếm được có 0 từ, mình không biết nguyên nhân tại sao nên đăng đàn hỏi các bác, mong các bác giúp :frowning:

 #include<iostream>
 #include<string.h>
  
 using namespace std;
  
 int main()
 {
     char a[100];
     int i,count;
   
     cout<<"Enter a string:";
     cin >> a[100];
   
     
     for(i=0;i<strlen(a);++i)
     {
         if( a[i]==' ' && a[i+1] != ' ' && a[i+1]!='\0')
             count++;
     }
   
     cout<<"\nThere are "<<count<<" words in the given string" << endl;
  
     return 0;
 }
  • Viết tiếng Việt có dấu giúp mình.
  • Format lại code bằng cách thêm 3 dấu ` vào đầu và cuối code, như thế này:

// code

  • Bạn không biết bạn sai ở đâu nhưng bạn biết bạn sai như thế nào chứ?

Mình không biết mình sai thế nào ca? :frowning:

Thế thì chẳng ai biết cần giúp bạn ở đâu cả. Bạn không biết mình sai ở đâu, và mọi người không phải ai cũng là người debug miễn phí cho bạn.

Mình nghi là nó sai ở phần if() nhưng mình không biết nó sai logic chỗ nào cả? Bạn gợi ý cho mình được k?

Bạn không test với các bộ input/output thì làm sao biết là sai? Coder chứ không phải thầy bói mà đoán lỗi sai nhé.

[spoiler]Sao code C++ theo phong cách C thế kia?[/spoiler] Bạn tự xem bạn có mắc lỗi nào cơ bản không nhé, mà bạn code bằng Notepad hay sao mà bạn không biết lúc dịch code có báo lỗi gì à?

mình gõ input 3 từ,out put báo 0 từ. Bạn nói rõ thế có phải hơn không? mình code bằng sublime,ide của linux.

bump !!!11

Bạn thử viết lại bằng cách viết từng phần một rồi chạy chương trình xem
Đầu tiên thử xem mảng a đã đúng như mình muốn chưa bằng cách in mảng a ra màn hình
Tiếp theo cứ viết xong từng đoạn nhỏ bạn chạy thử xem lỗi ở đâu là ra ngay

1 Like

Input của bạn cụ thể như thế nào?

Hay lắm, bạn chưa khởi tạo biến đếm…

input là tên mình, gồm 3 chữ.
ý bạn là mặc định count = 0 hay sao? kể cả thế đến lúc mình cần output ra 3 chữ cái mà vẫn k đc

Mình không nghĩ là dòng này đúng. Đã code C++ thì đổi hẳn sang std::string chứ dùng mảng char làm gì nữa hả bạn.

Làm gì có cái trò này, bạn đã khai báo mảng a gồm 100 ký tự rồi, việc tiếp theo là cin nó vào a thôi. Cin nó sẽ tự next vị trí của kiểu char
cin >> a;

1 Like

ôi vl cảm ơn 2 bạn nhiều, mình cũng ko chủ ý viết cin ngu si thế đâu, mà loay hoay tập trung xem phần if mình sai hoặc thiếu gì không. Cảm ơn 2 bạn nhiều lắm

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?