int i=0,j=0;
char string[100], string2[100];
scanf("%s",&string);
while (string[i]!='\0'){
if(string[i]=='a' || string[i]=='e' || string[i]=='i' || string[i]=='o' || string[i]=='u' || string[i]=='A' || string[i]=='E' || string[i]=='I' || string[i]=='O' || string[i]=='U'){
string[i]=string2[j];
}
string[i] = tolower(string[i]);
string[i] = string2[j];
string2[j-1]='.';
}
printf("%s", string2);
return 0;
问题是输入一个单词,然后删除所有元音,添加'。'在每个常数之后,将所有大写字母小写。
答案 0 :(得分:1)
由于string
是数组,因此在将&
传递给scanf()
时不会使用if
,这会给你一个双指针,这是一个错误。每当你发现自己有一个10条index()
语句时,你只是问问题(例如容易被错别字绊倒。)你可以用i
和包含所有字符串的字符串来简化这个测试。元音。在编写代码以指示每个部分实现哪些要求时,评论不会有害。每次循环时j
变量都需要递增,每次将新字符添加到string2
时,scanf()
变量都需要递增。在string
之后,您不应该分配到string2
,将其视为只读,只会分配到j-1
。并且string2
不应该发生。最后,由于#include <ctype.h>
#include <stdio.h>
#include <strings.h>
#define VOWELS "AEIOUaeiou"
int main()
{
char string[100], new_string[100] = { 0 };
// enter a word
scanf("%s", string);
for (int i = 0, j = 0; string[i] != '\0'; i++)
{
// remove all vowels
if (index(VOWELS, string[i]) == NULL)
{
// make all upper case letters lower case
new_string[j++] = tolower(string[i]);
if (isalpha(string[i]))
{
new_string[j++] = '.'; // add '.' after every consonant
}
}
}
printf("%s\n", new_string);
return 0;
}
未初始化,因此可能存在垃圾并且您没有将其终止。把它们放在一起:
Class First{
//Declare That Character object as a static public here
//Player1;
}
Class Second{
//First Create Object Of that class....
First f = new First(//Parameter For Constructor);
f.Player1;
}
我假设“在每个常数之后”意味着“在每个辅音之后”,否则请澄清常数的含义。