社区
新手乐园
帖子详情
请教个字符串问题
xiamihouwei
2007-04-03 05:04:37
我欲将"I like to go to shool"-------->"shool to go to like I"希望帮忙前辈帮帮忙。
...全文
244
11
打赏
收藏
请教个字符串问题
我欲将"I like to go to shool"-------->"shool to go to like I"希望帮忙前辈帮帮忙。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiamihouwei
2007-04-03
打赏
举报
回复
#include "stdio.h"
#define MAX_N 100
char *fun(char *pString)
{ int cnt,num= 0;
char *temp,*pSpace,*space=" ";
char cBuff[20][16],LastChar;
temp=pString;
LastChar=*(temp+strlen(temp)-1);
while(*temp!='\0')
{
pSpace=strchr(temp ,' ');
if(pSpace!=NULL)
{
strncpy(cBuff[num++],temp, strlen(temp)-strlen(pSpace));
pSpace++;
temp=pSpace;
}
else if(LastChar<'z'&&LastChar>'a'||LastChar<'Z'&&LastChar>'A')
{
strncpy(cBuff[num],temp,strlen(temp));
break;
}
else
{
strncpy(cBuff[num],temp,strlen(temp)-1);
strcpy(cBuff[num+1],temp+strlen(temp)-1);
break;
}
}
memset(pString, 0, strlen(pString));
for(cnt=num;cnt>=0;cnt--)
{
if(cnt!=0)
{
strcat(pString,cBuff[cnt]);
strcat(pString,space);
}
else
{ strcat(pString,cBuff[cnt]);
strcat(pString,cBuff[num+1]);
}
}
return pString;
}
main()
{
char *pString=(char*)malloc(sizeof(char)*MAX_N);
char *achar=NULL;
gets(pString);
achar= fun(pString);
puts(achar);
}
我最后的版本谢谢大家支持!
xiamihouwei
2007-04-03
打赏
举报
回复
谢谢你 请问下用STRTOK怎么省代码。
samio_520
2007-04-03
打赏
举报
回复
不过他的函数里好像有BUG哦
samio_520
2007-04-03
打赏
举报
回复
哦,是有这么个函数strtok,要省掉我好多代码啊,呵呵
samio_520
2007-04-03
打赏
举报
回复
将空格间的子串提取出来放到一个指针数组中,再反向输出指针数组中的内容即可
#include <stdio.h>
#include <string.h>
#define MAX_LEN 256
void RevStr(char * Source)
{
char *SrTemp; //输入参数的备份指针
char *pEnd; //无限循环的中断标志指针
char *cBuff[MAX_LEN]; //提取出来的子串存放地
int cnt = 0; //循环变量
int Num = 0; //记录子串个数
//初始化
for(cnt; cnt < MAX_LEN; cnt++)
{
cBuff[cnt] = NULL;
}
SrTemp = Source;
while(1)
{
pEnd = strstr(SrTemp, " ");//返回第一次出现空格时的指针pEnd
if(0 == pEnd)
{
break; //没有空格时,结束循环
}
//动态分配指针数组
cBuff[Num] = (char*)malloc(strlen(SrTemp) - strlen(pEnd) + 1);
//提取子串
strncpy(cBuff[Num++], SrTemp, strlen(SrTemp) - strlen(pEnd));
while(' ' == *pEnd)
{
pEnd++; //将当前指针移到非空格的字符前
}
SrTemp = pEnd; //继续循环
}
for(cnt = Num - 1; cnt >= 0; cnt--)
{
//反向输入到Source中
memset(Source, 0, strlen(Source));
strcat(Source, cBuff[cnt]);
//释放指针
free(cBuff[cnt]);
cBuff[cnt] = NULL;
}
return;
}
xiamihouwei
2007-04-03
打赏
举报
回复
strchr也可以替换strtok吧!很感谢你!
xiamihouwei
2007-04-03
打赏
举报
回复
这样做把原来的空格给没了
Mypiger
2007-04-03
打赏
举报
回复
char strTmp[32],strTmp1[8][16],*token = NULL,seps[] = " ";
int j = 0;
strcpy( strTmp, "I like to go to shool" );
token = strtok( strTmp, seps );
while( token != NULL )
{
strcpy( strTmp1[j], token );
token = strtok( NULL, seps );
j++;
}
//显示
for( int i=j-1; i>0; i-- )
printf( "%s ", strTmp1[i]);
getchar();
不好似strTmp越界了!改成32位
Mypiger
2007-04-03
打赏
举报
回复
char strTmp[16],strTmp1[8][16],*token = NULL,seps[] = " ";
int j = 0;
strcpy( strTmp, "I like to go to shool" );
token = strtok( strTmp, seps );
while( token != NULL )
{
strcpy( strTmp1[j], token );
token = strtok( NULL, seps );
j++;
}
//显示
for( int i=j-1; i>0; i-- )
printf( "%s ", strTmp1[i]);
getchar();
return;
hellox
2007-04-03
打赏
举报
回复
别忘了#include<algorithm>
hellox
2007-04-03
打赏
举报
回复
reverse
字符串
问题
本文探讨了一种基于
字符串
的
问题
,通过使用SAM(Suffix Array with Maximal Matching)进行优化解决。
问题
涉及从给定
字符串
中选取子串,形成特定条件下的最长目标串。文章详细介绍了SAM的构建过程,如何通过拓扑排序和DP算法优化解决方案,以及如何处理串的前缀和支配关系。
Trie树之
字符串
统计
问题
本文围绕Trie树之
字符串
统计
问题
展开。Trie树即字典树,以类似字典方式存储数据,经典应用包括
字符串
统计
问题
。该
问题
需维护
字符串
集合,支持插入和询问操作。文中介绍了算法实现,定义数组存储节点信息,实现insert()和query()函数,并给出了实现代码。
字符串
问题
—其七
博客围绕
字符串
问题
展开,涵盖0左边必有1的二进制
字符串
数量、拼接
字符串
使字典顺序最小、找最长无重复字符子串等多个
问题
。每个
问题
都给出题目描述及举例,部分有代码实现,如符合斐波那契数列规律、自定义比较函数等,部分解法可参考原书。
AI刷题-
字符串
元音相似性
问题
、
字符串
对比
问题
博客围绕两个
字符串
问题
展开。一是
字符串
元音相似性
问题
,需判断偶数长度小写
字符串
前后半部分元音字母数量是否相同,使用固定大小数组统计计数;二是
字符串
对比
问题
,要将含相同数量特定字符的
字符串
拆分成最多子串,用计数器跟踪字符平衡情况。
字符串
问题
汇总
该博客汇总了多个
字符串
问题
及对应算法。包括求最长无重复字符子串、使
字符串
每种字符只出现一次且字典序最小、寻找最长配对括号子串长度,以及满足特定条件的
字符串
个数计算等
问题
,并给出了不同
问题
的多种实现代码。
新手乐园
33,315
社区成员
41,770
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章