关于字符串分割函数

emoshusheng 2011-04-02 10:04:11
现在在一家公司实习培训,培训老师出了一道题,要求自己写一个函数实现字符串的分割。他说,strtok()函数有缺陷。比如一字符串为:||123|456||78||,分隔符为:|。要是用strtok(),则分割成3个字串分别为:123 456 78。但是按老师的意思应该是8个字串,第一个为空,第二个为空,第三个为123,第四个为456,第五个为空,第六个为78,第七个为空,第八个为空。如果分隔符换为:||,那分割出的字串个数为4个。他说分隔符两边要是没有字符那就是空,也应该被分割出来。
不知道大家看懂了没,这个程序我已经写好了。我发这个帖子的目的是告诉大家调用封装好的函数很方便,但是也不可盲目。多想想封装好的函数是不是很合理。
如果大家看懂了,不妨试着自己动手编写程序,调试一下吧。
...全文
148 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2011-04-04
  • 打赏
  • 举报
回复
你老师没向 ISO 写信?
qq120848369 2011-04-02
  • 打赏
  • 举报
回复
|||
空 空 空 空
总共: 4 段
qq120848369 2011-04-02
  • 打赏
  • 举报
回复
1
1总共: 1 段
2
2总共: 1 段
123
123总共: 1 段
123||||
123 空 空 空 空
总共: 5 段
|||123a|1|3||41|
空 空 空 123a 1 3 空 41 空
总共: 9 段

qq120848369 2011-04-02
  • 打赏
  • 举报
回复
||123|456||78||
空 空 123 456 空 78 空 空
总共: 8 段

#include <stdio.h>
#include <stdlib.h>

char* find(char *str)
{
while(*str!=0 && *str!='|')
{
++str;
}

return str;
}

int function(char *str)
{
char *begin=str-1,*end=find(str);
int count=1;

while(*end!=0)
{
if(end==begin+1)
{
printf("空 ");
}
else
{
*end=0;
printf("%s ",begin+1);
}

begin=end;
end=find(begin+1);
++count;
}

if(end==begin+1)
{
printf("空 \n");
}
else
{
printf("%s",begin+1);
}

return count;
}


int main()
{
char buffer[100];

while(scanf("%s",buffer)!=EOF)
{
printf("总共: %d 段",function(buffer));
}

return 0;
}

masmaster 2011-04-02
  • 打赏
  • 举报
回复
感谢楼主。 分享代码。
hhh_hao 2011-04-02
  • 打赏
  • 举报
回复
用已有的函数当然要知道它的作用, 能用封装的尽量用, 即减少了代码量, 又提高了阅读性...
内容概要:本文围绕“MATLAB基于Copula理论的多风电场风电预测误差时空相关性建模研究”展开,重点利用Copula理论对多个风电场的预测误差进行时空相关性建模,旨在提高风电功率预测的准确性与可靠性。通过MATLAB实现建模过程,充分考虑风电预测误差在时间和空间维度上的统计特性与依赖结构,构建能够刻画复杂非线性相关关系的概率模型。该方法有助于提升高比例可再生能源接入背景下电力系统调度、风险评估与稳定性分析的能力,尤其适用于多风电场协同运行与预测误差不确定性管理场景。文中可能涉及边缘分布拟合、Copula函数选型、参数估计与模型验证等关键技术环节。; 适合人群:具备一定概率统计与电力系统背景知识,熟悉MATLAB编程,从事新能源预测、电力系统规划或风险管理等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于多风MATLAB基于Copula理论的多风电场风电预测误差时空相关性建模研究电场联合预测误差建模,提升区域风电出力预测精度;②支撑电力系统风险评估、储能配置与调度决策,增强电网对风电波动性的适应能力;③复现高水平期刊(如SCI)研究成果,推动学术研究与实际应用结合。; 阅读建议:建议读者结合文中提供的MATLAB代码深入理解Copula建模流程,重点关注边缘分布选择与Copula函数比较,同时可扩展至光伏等其他可再生能源的时空相关性建模研究。
内容概要:本文介绍了一种基于变分模态分解(VMD)与麻雀搜索算法(SSA)优化的最小二乘支持向量机(LSSVM)相结合的多变量电力负荷预测模型,该模型通过Matlab代码实现。首先利用VMD对原始负荷序列进行分解,降低非平稳性;再通过SSA优化LSSVM的关键参数,提高预测精度;最后将处理后的各模态分量重构得到最终预测结果。该方法有效提升了负荷预测的准确性与稳定性,适用于多变量输入场景下的短期负荷预测任务。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的高校研究生、科研人员及从事能源预测相关工作的工程技术人员;尤其适合正在开展智能优化算法与机器学习在电力负荷预测方向研究的学者。; 使用场景及目标:①用于提升电力系统中短期负荷预测精度,支持电网调度与运行决策【VMD-SSA-LSSVM】基于变分模态分解与麻雀优化Lssvm的负荷预测【多变量】(Matlab代码实现);②为研究VMD、SSA、LSSVM等先进算法在时间序列预测中的融合应用提供可复现的技术方案与代码参考;③作为SCI论文复现或科研项目开发的基础模型框架。; 阅读建议:建议读者结合文中涉及的信号分解、智能优化与机器学习理论,逐步调试Matlab代码,理解每一步的数据处理与参数优化逻辑,并尝试在不同数据集上验证模型性能,进一步拓展至风电、光伏等可再生能源出力预测领域。

70,034

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧