30/09/2018, 20:30
vấn đề về chuỗi trong c
mình có một đoạn code như thế này
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char a[1000];
int dem=0;
printf("moi ban nhap vao so ky tu cau van ban
");
scanf("%s",a);
long dodai=0;
dodai=strlen(a);
for(int i=0;i<dodai;i++)
{
if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'||a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U')
dem++;
}
printf(" co so ky tu nguyen am la:%d",dem);
return 0;
}
nó chạy được nhiệm vụ của nó là đếm số ký tự nguyên am trong chuỗi nhưng nếu bạn nhập từ đólà nhiên thì nó sẽ trả về 2 ký tự nguyên âm nếu bạn nhập thêm dấu cách nữa thì nó chỉ tính phần từ đầu tiên thôi
vậy có cách nào để sửa cho nó tính được cả phần chuỗi phía sau dấu cách không nhỉ
Bài liên quan
bạn dùng gets để nhập chuỗi nhé.
doan nay khong sua duoc ha ban
strlen(a) là trả về độ dài của chuỗi
dodai là một số nguyên
Hai cái này bằng nhau được hả bạn
uh hai cai nay bang nhau duoc ma ban
Thế này hả bạn, dấu cách vẫn tính
Dùng
fgets
fgets(a, dodai, stdin);
gets
không xét độ dài buffer truyền vào, code trên nhập vào quá 1000 kí tự thì dùnggets
sẽ bị lỗi.studin la gi ha banban viet code may cho minh duoc khong ban
thì bạn sửa lại thành thế này thôi: