社区
C语言
帖子详情
如何实现这样一个问题?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xxsteven
2003-11-27 02:11:05
我要处理一个大字符串。里面的格式是:
费用名称1|金额1|费用名称2|金额2|费用名称3|金额3|....|费用名称n|金额n|
我要把它们分别按照,|,取出来放到一个单独的字符串里面,
如:
str1="费用名称1"
str2="费用名称1"
...
strn="费用名称n"
关键我不知道一共有多少个我如何建立多少个变量如何实现
...全文
74
11
打赏
收藏
如何实现这样一个问题?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
我要处理一个大字符串。里面的格式是: 费用名称1|金额1|费用名称2|金额2|费用名称3|金额3|....|费用名称n|金额n| 我要把它们分别按照,|,取出来放到一个单独的字符串里面, 如: str1="费用名称1" str2="费用名称1" ... strn="费用名称n" 关键我不知道一共有多少个我如何建立多少个变量如何实现
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xxsteven
2003-11-28
打赏
举报
回复
先谢谢大家,不过现在问题麻烦了,字符船变了,如下:
比如三张发表:
费用名称1|金额1|费用名称2|金额2\n|费用名称1|金额1|费用名称2|金额2\n|费用名称1|金额1|费用名称2|金额2\n\n|是这样的,\n是一张结束的标志,\n\n是全部结束的标志,我只要 把3张区别出来,成
费用名称1|金额1|费用名称2|金额2\n
费用名称1|金额1|费用名称2|金额2\n
费用名称1|金额1|费用名称2|金额2\n
然后把“|”去掉直接打出来就完了,如何实现呢?在线上等待。
Maxwell
2003-11-28
打赏
举报
回复
更简单了,一个字符一个字符的读就行,反正分两次把一个汉字复制过去也不会有问题,读到|就跳过,遇到\n就结束一张了。
Maxwell
2003-11-27
打赏
举报
回复
用vector吧,每次push_back,如果知道有三张,每次读到一个\n就算结束就可以了,用一个for 循环三次就处理完了三张。
normalnotebook
2003-11-27
打赏
举报
回复
用链表处理比较好,用字符数组不行,用变量记录也不好,因为根本不知道有多少,只有用链表把他串起来.分割时用strtok()分割就可以了.
xxsteven
2003-11-27
打赏
举报
回复
用链表如何实现
psbeond
2003-11-27
打赏
举报
回复
可以用链表实现,就不用管多少了,也可以用vector+pair
minitigger
2003-11-27
打赏
举报
回复
if(str[strlen(str)-1] == '\n' &&str[strlen(str)-2] =='\n') this is the last one.
xxsteven
2003-11-27
打赏
举报
回复
但是现在还有个问题那个大字符串是一个票据数据,里面有3张票据数据,每一张都是以"\n"结束
最后一张是"\n\n"结束,我如何区分3张呢 ?
liuleilover
2003-11-27
打赏
举报
回复
遍历字符串str,每遇到一个'|'记下它后一个字符的地址str_next,将此'|'改为'\0'则
可以得到这一字串的长度,动态分配内存str_mem将字串str拷贝到str_mem,将str
付值为str_next重复此过程........
问题即解.
rerli
2003-11-27
打赏
举报
回复
我正好写了个函数处理这种问题。
你看看,函数返回的就是分割后值的个数,值存储在一个指针数组中。
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
/*
destin : 外界存储分割后值的指针数组。
source : 源需要分割字符串。
sign : 分割符号。
返回值 : 分割后值的个数。
*/
int split(char *destin[], char *source, char *sign)
{
#define NULL 0
int i=0;
char *p;
p = strtok(source,sign);
while (p)
{
destin[i++] = p;
p = strtok(NULL, sign);
}
return i;
}
main()
{
static char ss[100] = {"aaaa1|bbbb1|aaaa2|bbbb2|aaaa3|bbbb3"};
char *name[20];
int i;
int num;
num = split(name,ss,"|");
printf("%d\n",num);
for(i=0; i<num; i++)
printf("%s\n",name[i]);
printf("\n");
system("pause");
}
xxsteven
2003-11-27
打赏
举报
回复
请帮助
APKTOOL反编译工具
@echo off set PATH=%CD%;%PATH%; java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
python 在sql语句中使用%s,%d,%f说明
主要介绍了python 在sql语句中使用%s,%d,%f说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
PowerDesigner使用技巧
PowerDesigner使用技巧,快捷键
PowerDesign高级应用
PowerDesign高级应用
编写相关的VBS脚本在PowerDesign里自定义一些命令与操作等,具体的可以参考C:\Program Files\Sybase\PowerDesigner 9\VB Scripts目录下的脚本示例。
怎么运用这些脚本呢?
在Tools-》Execute Commands里可以进行操作。具体说明在帮助里写的很清楚。帮助的位置在 PowerDesigner General Features Guide-> PART 2. Modeling Guide->CHAPTER 8. Managing Objects->Accessing objects using VBScript->VBScript uses in PowerDesigner
PowerDesign的使用主要是DBMS的配置
1、修改建表脚本生成规则。如果每个表格都有相同的字段,可以如下修改:
Database -> Edit Current DBMS 展开 Script -> Object -> Table -> Create 见右下的Value值,可以直接修改如下:
...
js gb2312编码
js gb2312 编码 mailto中 的汉字编码 百度url编码
C语言
70,025
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章