| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 922 人关注过本帖
标题:求一道程序题的编写
只看楼主 加入收藏
zhangshu2005
Rank: 2
等 级:论坛游民
帖 子:11
专家分:22
注 册:2009-11-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:12 
求一道程序题的编写
输入一个带数字的字符串,如aaa888aaa999,运行程序后使每个数字后面加上*号,结果为aaa8*8*8*aaa9*9*9*
在线等,谢谢
搜索更多相关主题的帖子: 编写 
2009-12-01 16:05
秋天的童话
Rank: 2
等 级:论坛游民
帖 子:33
专家分:92
注 册:2009-12-1
收藏
得分:0 
输入的时候只输入字母和数字吗
2009-12-01 17:37
佳嘉
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:534
专家分:1383
注 册:2009-11-8
收藏
得分:15 
我写了一个
你看看
#include<stdio.h>
 main()
{
char x[100];
 int k=0;
gets(x);  /*输入字符数组*/
do
{
printf("%c",x[k]);
if(x[k]>47&&x[k]<58)
printf("*");
k++;
}while(x[k]);
getch();
}
2009-12-01 17:43
caojulians
Rank: 2
等 级:论坛游民
帖 子:39
专家分:67
注 册:2009-11-15
收藏
得分:5 
用do/while循环,标准函数isdigit()判一个字符是否是数字,如果没有限制再构造一个字符数组,用两个变量j,k分别指示两个数组中字符位置
char a[80];
char b[80];
int j,k;
...
gets(a);
j=k=0;
do
{   
    if(isdigit(a[i]))
    {
        b[j]=a[i];
        b[j+1]='*';
        i++;
        j=+2;
     }
    else
    {
        b[j]=a[i];
        i++;
        j++;
     }
while(a[i]!='\0');
自己想一想,串结束符'\0'有没有复制到b数组中?留给你自己做啦!  
2009-12-01 17:44
caojulians
Rank: 2
等 级:论坛游民
帖 子:39
专家分:67
注 册:2009-11-15
收藏
得分:0 
如果有限制为只能在当前数组中处理,则用:
若当前字符是数字,则将后边的子字符串右移一位插入一个‘*’,。。。
一定要保证有足够的空间啊!
2009-12-01 17:47
zhangshu2005
Rank: 2
等 级:论坛游民
帖 子:11
专家分:22
注 册:2009-11-16
收藏
得分:0 
回复 2楼 秋天的童话
是的。
2009-12-01 17:50
zhangshu2005
Rank: 2
等 级:论坛游民
帖 子:11
专家分:22
注 册:2009-11-16
收藏
得分:0 
回复 3楼 佳嘉
很特别的思路,至少我没想到,谢谢
2009-12-01 17:53
zhangshu2005
Rank: 2
等 级:论坛游民
帖 子:11
专家分:22
注 册:2009-11-16
收藏
得分:0 
回复 4楼 caojulians
你写的有点难,我是初学者,看得很吃力,不过同样谢谢你。
2009-12-01 17:55
zhangshu2005
Rank: 2
等 级:论坛游民
帖 子:11
专家分:22
注 册:2009-11-16
收藏
得分:0 
虽然结贴了,我希望高手能用指针加自定义函数来编写,谢谢楼上几位的答案,期待新的结果
2009-12-01 17:59
andytony1234
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:74
专家分:102
注 册:2009-11-9
收藏
得分:0 
看我这个吧,
#include<Stdio.h>
void main()
{char c[100];int i,n;
printf("请输入字符串长度:");                                                /* 确定循环次数,*/
scanf("%d",&n);                                                                       /*  以便跳出循环...*/
printf("请输入字符串:\n");
for(i=0;i<=n;i++)                                                   /*不要问我这里为什么是i<=n,我本来以为不要=的,可是不要等号就少输出一个...呃.*/
scanf("%c",&c[i]);
for(i=0;i<=n;i++)                                                              /* 好吧,这里也是一样的.*/
{
    if(c[i]<='9'&&c[i]>='0')
printf("%c*",c[i]);
else if(c[i]<='z'&&c[i]>='a'||c[i]<='Z'&&c[i]>='A')
printf("%c",c[i]);
}
}
2009-12-01 18:24
快速回复:求一道程序题的编写
数据加载中...
 
   



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

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