// in cac tu bat dau bang mot nguyen am
#include<stdio.h>
#include<iostream>
#include<conio.h>
#include<math.h>
#include<string>
using namespace std;
void nhap(char a[]);
void xuat(char a[]);
void dem_na(char a[]);
int main()
{
char a[50];
nhap(a);
dem_na(a);
}
void nhap(char a[])
{
cout << "Nhap 1 chuoi ky tu:";
cin.getline(a, 50);
}
void xuat(char a[])
{
int n;
n = strlen(a);
for (int i = 0; i < n; i++)
cout << (a[i]);
}
void dem_na(char a[])
{
char temp[100],s[100];
char nguyenam[] = "aeiouyAEIOUY";// danh sach nguyen am
int len = strlen(a);
for (int i = 0; i < len;i++)// di tung phan tu thu i trong chuoi
{
while (a[i] != 32)i++;
int j = i + 1;
if (strchr(nguyenam,a[j])!=NULL)
{
int oldi = j; //dau tu
while (a[j] != 32) j++; //chay den ki tu cuoi
strncpy_s(temp, a + oldi, j - oldi); //trich ra mang temp
temp[j - oldi] = 0; //thêm ký tu ket thuc chuoi
xuat(temp);
}
}
}
Hỏi về code in các từ bắt đầu bằng 1 nguyên âm
Thuật toán đơn giản thôi! dùng 1 biến để dánh dấu xem đoạn nào cần in trong xâu là dc
VD:
#include <iostream>
using namespace std;
bool nguyen_am(char c){
char nguyenam[] = "aeiouyAEIOUY";
int i;
for(int i=0;i<12;i++){
if(c==nguyenam[i])return true;
}
return false;
}
int main() {
string s;
getline(cin,s);
int i;
bool print=false;
for(i=0;i<s.size();i++){
if(print and s[i]==' '){
/* ket thuc từ reset biến print */
print=false;
cout<<endl;
}
if((i==0 and nguyen_am(s[i])) or (s[i-1]==' ' and nguyen_am(s[i])) ){
/* từ là nguyên âm đầu câu hoặc giữa câu: print =true để in */
print=true;
}
if(print) cout<<s[i];
}
return 0;
}
co em dung oldi de danh dau lai roi ma no chi tach dc tung ki tu
do vòng lặp ngoài chỉ có ++i nên i tăng từng ký tự chứ ko phải từng từ. Cái bạn muốn là a[i] phải ở đúng ký tự đầu tiên của từ tiếp theo.
gán i = j trước khi đóng vòng for xem coi đúng ko?
1 Like
va
*[quote=“tntxtnt, post:4, topic:18380, full:true”]
do vòng lặp ngoài chỉ có ++i nên i tăng từng ký tự chứ ko phải từng từ. Cái bạn muốn là a[i] phải ở đúng ký tự đầu tiên của từ tiếp theo.
gán i = j trước khi đóng vòng for xem coi đúng ko?
[/quote]
vang em cam on*
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?