【发布时间】:2014-02-16 12:10:31
【问题描述】:
我应该输入字符串,我的程序应该重新组织元素,因此塞尔维亚元音 (a,o,i,e,u) 应该是第一个元素,然后是辅音。我的想法是在第二个字符串中复制元音,在第三个字符串中复制辅音然后制作一个字符串(使用 strcat 和元音和辅音字符串),但这并没有按计划工作......任何想法要改变什么或如何做?
#include <stdio.h>
#include <string.h>
int main()
{
char s[50],s2[50];
char vowels[50];
char consonant[50];
int k=0,f=0;
printf("Type string:\n");
gets(s);
for(int i;i<strlen(s);i++)
{
if(s[i]={'A','O','I','E','U','a','o','i','e','u'}) s[i]=vowels[k],k++;
else s[i]=consonant[f],f++;
}
strcat(vowels,consonant);
printf("%s",vowels);
return 0;
}
【问题讨论】:
-
你觉得这条线有什么作用?
if(s[i]={'A','O','I','E','U','a','o','i','e','u'} -
我认为您的想法可行,但
s[i] = {...}不是您检查一个值是否是多个值之一的方式。您可以做很多if (s[i] == 'a' || s[i] == 'o' ... )或使用strchr之类的东西来查看一个字符是否是字符串的一部分。 -
@PaulMcKenzie 这取决于您获得的 c++ 版本...它的扩展元素列表...仍然可能有问题会尝试更改它
-
@MatsPetersson 在学校很好,我的教授把这个作为搜索扩展列表的例子,所以我认为如果 if()||... 使用它而不是列出所有元素更容易
-
@user3127589 - 这不是合法的 C++。