| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1558 人关注过本帖
标题:[求助]在字符串中插入千分符
只看楼主 加入收藏
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
 问题点数:0 回复次数:6 
[求助]在字符串中插入千分符
以下的程序是想输入一段数字,如果多于4位则插入千分符并输出,如果少于4位则原样输出
例如,输入12,则输出12;输入1234,则输出1,234;输入1234567,则输出1,234,567
但是程序编写有问题,请大侠指正
非常感激:



#include<iostream>
void main()
{
char c[20],inserter;
int len,i,index;
printf("please input the numbers:\n");
gets(c);
printf("the original numbers are:\n");
puts(c);
printf("after add the tag:\n");
len=strlen(c);
if(len<4)
puts(c);
else
{
for(i=len;i<0;i-=3)
{
inserter=',';
index=i-3;
c[index-1]=inserter;
}
puts(c);
}
printf("\n");
}
搜索更多相关主题的帖子: 字符 
2006-04-29 01:52
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
我这没有编译器
不过我看你这错误很多(函数头,循环条件,数据丢失。)
莫不如再设一个字符数组
每查3位加个‘,’应该比这个好实现

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-04-29 04:26
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

我写了个
[CODE]
#include "stdio.h"

int main()
{
char str[20];
int len,i;

gets(str);
len=strlen(str)%3;
for(i=0;str[i]!='\0';i++)
{
printf("%c",str[i]);
if( (i+1)%3==len && str[i+1]!='\0')
printf("%c",44);
}
printf("\n");
return 0;
}

[/CODE]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-04-29 04:27
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
斑竹正解.算法不错.

我的原则很简单:不做不喜欢的事!
2006-04-29 09:24
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 

只是有一点想说一下,最好定义字符串指针并为它分配一个空间,最后释放,程序的效率会提高;假如直接定义了字符数组,可能会浪费了一些空间.
代码:
======================================================
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int
main(void)
{
char *In_num;
int lenth;
int i;
In_num=(char *)malloc(sizeof(char *));
printf("Please input the num_string:\n");
gets(In_num);
lenth=strlen(In_num)%3;
for(i=0;In_num[i]!='\0';i++)
{
printf("%c",In_num[i]);
if( (i+1)%3==lenth&& In_num[i+1]='\0')
printf("%c",44);
}
printf("\n");
system("Pause");
return 0;

}


我的原则很简单:不做不喜欢的事!
2006-04-29 09:31
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
以下是引用lj_860603在2006-4-29 9:31:00的发言:

只是有一点想说一下,最好定义字符串指针并为它分配一个空间,最后释放,程序的效率会提高;假如直接定义了字符数组,可能会浪费了一些空间.
代码:
======================================================
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int
main(void)
{
char *In_num;
int lenth;
int i;
In_num=(char *)malloc(sizeof(char *));
if(In_num==NULL) //忘了检查分配是否成功;
{
printf("Can't get so many values.\n");
exit(1);
}
printf("Please input the num_string:\n");
gets(In_num);
lenth=strlen(In_num)%3;
for(i=0;In_num[i]!='\0';i++)
{
printf("%c",In_num[i]);
if( (i+1)%3==lenth&& In_num[i+1]='\0')
printf("%c",44);
}
printf("\n");
free(In_num); //刚忘了释放;
system("Pause");
return 0;

}

西西``不好意思,刚写得太急促,忘了两点东西.


我的原则很简单:不做不喜欢的事!
2006-04-29 09:35
虫的传人
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2006-3-5
收藏
得分:0 

谢谢


好马不吃回头草 然而,我不是好马 可见,坏马也不吃回头草
2006-04-29 12:31
快速回复:[求助]在字符串中插入千分符
数据加载中...
 
   



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

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