| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 405 人关注过本帖
标题:一个简单的字符串练习求解
只看楼主 加入收藏
雨夜听风
Rank: 2
等 级:论坛游民
帖 子:22
专家分:16
注 册:2012-6-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
一个简单的字符串练习求解
练习:输入字符串,把其中的元音字母复制到另一字符串,然后输出“另一字符串”。

我的代码,用的编译器:vc++6.0 :

# include <stdio.h>
# include <string.h>

int main(void)
{
    char a[100], b[100];
    int i, j = 0;

    printf("请输入字符串:");
    gets(a);
    for (i = 0;a[i] != '\0';i++)
    {
        if ( a[i] == 'a'||a[i] == 'e'||a[i] == 'o'||a[i] == 'i'||a[i] == 'u' )
        {
            b[j] = a[i];
            j++;
        }
    }
    puts(b);
    for (i = 0;b[i] != '\0';i++)
        printf("%c",b[i]);
    printf("\n");
    return 0;
}

最总虽然能看到正确结果,但是有一大片乱码,该如何修改呢?
搜索更多相关主题的帖子: include 编译器 字符串 
2012-12-07 23:14
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
# include <stdio.h>
 # include <string.h>
 
int main(void)
 {
     char a[100], b[100];
     int i, j = 0;
 
    printf("请输入字符串:");
     gets(a);
     for (i = 0;a[i] != '\0';i++)
     {
         if ( a[i] == 'a'||a[i] == 'e'||a[i] == 'o'||a[i] == 'i'||a[i] == 'u' )
         {
             b[j] = a[i];
             j++;
         }
     }
     b[j] = '\0';// 加上这个
     puts(b);
     for (i = 0;b[i] != '\0';i++)
         printf("%c",b[i]);
     printf("\n");
     return 0;
 }
 

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-12-07 23:16
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
b[100] = {0}; 或者你初始化下也行的,只是保证字符串最后是 0 结尾,

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-12-07 23:17
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:15 
同时,你还要考虑元音字母可能是大写的哦

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-12-07 23:19
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
程序代码:
# include <stdio.h>
# include <string.h>

int main(void)
{
    char a[100], b[100];
    int i, j = 0;
    for(int k=0;k<100;a[k++]='\0',b[k++]='\0');
    printf("请输入字符串:");
    gets(a);
    for (i = 0;a[i] != '\0';i++)
    {
        if ( a[i] == 'a'||a[i] == 'e'||a[i] == 'o'||a[i] == 'i'||a[i] == 'u' )
        {
            b[j] = a[i];
            j++;
        }
    }
    //puts(b);
    for (i = 0;b[i] != '\0';i++)
        printf("%c",b[i]);
    printf("\n");
    return 0;
}

DO IT YOURSELF !
2012-12-07 23:20
雨夜听风
Rank: 2
等 级:论坛游民
帖 子:22
专家分:16
注 册:2012-6-25
收藏
得分:0 
回复 2楼 yuccn
明了,谢谢版主!
2012-12-07 23:24
h1023417614
Rank: 4
等 级:禁止访问
帖 子:211
专家分:237
注 册:2012-11-30
收藏
得分:0 
菜鸟易犯的错误,忘记字符串结束的标记-空字符
2012-12-07 23:25
qizhuocai
Rank: 2
来 自:广西
等 级:论坛游民
帖 子:5
专家分:13
注 册:2012-12-8
收藏
得分:0 
2012-12-08 10:01
快速回复:一个简单的字符串练习求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018131 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved