30/09/2018, 18:50
1 số bài tập về chuỗi
12-đếm số lượng từ chứa ít nhất 2 nguyên âm
13- tìm kí tự xuất hiện nhiều nhất
14-tìm từ dài nhất
15-đảo ngược thứ tự các từ trong chuỗi
ai biết bài nào chỉ minh nha , với lại mình làm bài 12 như thế này sai chỗ nào vậy mọi người
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "math.h"
#include "string.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[]) {
char s[20];
do {
cout << " nhap chuoi ki tu : ";
cin.getline(s, 50);
cout << " chuoi vua nhap ";
cout << "" << s << "" << endl;
// 12-dem so luong tu chua it nhat 2 nguyen am
int tongso = 0;
int khongthoa = 0;
int thoa;
int len = strlen(s);
if (s[0] != NULL && s[0] != 32)
tongso++;
for (int i = 1; i < len; i++) {
if (s[i] != 32 && s[i - 1] == 32)
tongso++;
}
int j = 0;
while (j < len && (toupper(s[j]) != 'U' || toupper(s[j]) != 'E' || toupper(s[j]) != 'O' || toupper(s[j]) != 'A' || toupper(s[j]) != 'I' || toupper(s[j]) != 'Y'))
j++;
if (j >= len)cout << " mang khong chua chu nguyen am " << endl;
else { // tìm từ chứa ít hơn 2 nguyên âm
for (; j < len; j++) {
if (toupper(s[j]) == 'U' || toupper(s[j]) == 'E' || toupper(s[j]) == 'O' || toupper(s[j]) == 'A' || toupper(s[j]) == 'I' || toupper(s[j]) == 'Y') { // kiem tra j co phai la chu nguyen am
int kt = 0; // nếu j là nguyên âm
for (int z = j +1; z<len ; z++) {
if (toupper(s[z]) == 'U' || toupper(s[z]) == 'E' || toupper(s[z]) == 'O' || toupper(s[z]) == 'A' || toupper(s[z]) == 'I' || toupper(s[z]) == 'Y') {
// kiểm tra xem z có là nguyên âm
for (int k = z - 1; k>j; k--) {
if (s[k] == 32) { // nếu ở giữa có khoảng trắng , không thoã
kt = 1;
break;
}
}
}
}
if (kt == 1)
khongthoa = khongthoa + 1;
}
}
}
thoa = tongso - khongthoa;
cout << " so tu chua it nhat 2 nguyen am = " << thoa << endl;
cout << " nhan ESC de thoat chuong trinh !!!" << endl;
} while (_getch() != 27);
return 0;
}
Bài liên quan
Chỉnh code lại đi bạn, nhìn cho đẹp tí. Nhìn nhức mắt quá.
mình chỉnh lùi hàng bên ngoài rùi mà cứ post lên là như vậy ak
có đưa vào thẻ code được mà.
mình chỉnh rùi đó bạn
Của bạn là nhập vào chuỗi s: xong xét các đk phải không.
Nết C++ thì dễ rồi.
Bạn có thể làm như sau:
Ví dụ chuỗi: s=‘toi ten la dat’; s+=’ ';
s thành 'toi ten la dat ’
Xong dòng 1 for cắt chuỗi cho vào mảng String. vector v;
Bạn có tìm hiểu về STL chưa?