Код не работает: он не дал никаких результатов, я пытался решить его без использования функций, и это работало нормально, но когда я использовал функции, это не работало.
Я думаю проблема заключается в передаче 2d массива в функцию. Можете ли вы помочь мне понять, в чем проблема?
#include<stdio.h>
#include<string.h>
int cons_vols(char* str, char vol_words[][]);
int is_vol(char);
int main()
{
/*
Enter a string to find words with consecutive vowels
Please Enter password for Authentication
Words with Consecutive Vowels
Please
Authentication
*/
char str[100] = {0};
char vol_words[100][100] = {0};
int totl_vols;
printf("Enter a string\n");
fgets(str, 100, stdin);
totl_vols = cons_vols(str, vol_words);
for(int i=0;i<totl_vols;i++){
fputs(vol_words[i], stdout);
printf("\n");
}
return 0;
}
int cons_vols(char* str, char vol_words[][]) {
int vols = 0;
int i = 0;
// please enter
// j =0123456789A
for(int j= 0; j<strlen(str)-2; j++) {
if(str[j] == ' ' || str[j] == '\n') {
i = j+1;
}
else {
if( is_vol(str[j]) && is_vol(str[j+1])) {
while(str[j] != ' ' && str[j] != '\n' && str[j] != '\0') {
j++;
}
for(int k=0; k<j-i; k++) {
vol_words[vols][k]= str[k+i];
}
vols++;
i = j+1;
}
}
}
return vols;
}
int is_vol(char ch) {
if(ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U'
|| ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' )
return 1;
return 0;
}