社区
新手乐园
帖子详情
请教个字符串问题
xiamihouwei
2007-04-03 05:04:37
我欲将"I like to go to shool"-------->"shool to go to like I"希望帮忙前辈帮帮忙。
...全文
241
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,316
社区成员
41,770
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章