首页 > 其他分享 >strDivide2.cpp字符串划分

strDivide2.cpp字符串划分

时间:2023-06-16 13:07:55浏览次数:39  
标签:char 21 strArray strDivide2 单词 字符串 && ptmp cpp


// strDivide2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "string.h"
/*
s为 bwe@#$at111YYY*oo
那么func(s)将打印
at
bwe
oo
YYY

★树★(240028358)  21:07:57
先挑字母,再排序吧
国嵌唐老师(22134670)  21:21:25
我来说说 怎么做
1. 要先判断各个单词位置 把其它字符清成0, 这样字符数组中的就存放的是单词 组合 每个单词以0结束
2. 申请一个字符指针数组  将每个元素指向不同的单词
3. 写一个函数对这个指针数组排序

  唐老师的微博地址是多少啊?
http://weibo.com/u/1234587177

*/
bool isLowChar(char p)
{
	return (p>='a' && p<='z') ;
}
bool isUpChar(char p)
{
	return (p>='A' && p<='Z');
}

bool isChar(char p)
{
	return (p>='a' && p<='z') || (p>='A' && p<='Z');
}


void func(char *s)
{
	char* strArray[50];
	memset(strArray,0,sizeof(strArray));

	int strIndex=-1;
	char *p=s;
	bool isNewword=true;

	while(*p!='\0')
	{
	
		if(isChar(*p))
		{
			if(isNewword)
			{
				strIndex++;
				strArray[strIndex]=p;
				isNewword=false;
			}			
		}//if(isChar(*p))
		else
		{
			*p='\0';
			isNewword=true;
		}

		p++;
	}//while(*p!='\0')

	//排序

	for(int i=0;i<strIndex;i++)
	{
		for(int j=i+1;j<=strIndex;j++)
			if((isLowChar(*strArray[i]) && isLowChar(*strArray[j])) || (isUpChar(*strArray[i]) && isUpChar(*strArray[j])) )
				if(*strArray[i] > *strArray[j])
				{
					char *ptmp=strArray[i];
					strArray[i]=strArray[j];
					strArray[j]=ptmp;
				}
			else if(isUpChar(*strArray[i]))
				{
					char *ptmp=strArray[i];
					strArray[i]=strArray[j];
					strArray[j]=ptmp;
				}

	}
//打印
	for( i=0;i<strIndex;i++)
	{
		printf("%s\n",strArray[i]);
	}

}


int main(int argc, char* argv[])
{
	char s[]="bwe@#$at111YYY*oo";

	func(s);
	return 0;
}

/*
at
bwe
YYY
Press any key to continue
*/



标签:char,21,strArray,strDivide2,单词,字符串,&&,ptmp,cpp
From: https://blog.51cto.com/gjwrxz/6499023

相关文章

  • 正则表达式 匹配字符串中的所有 图片片路径
    getImgPath(str){//匹配图片(g表示匹配所有结果i表示区分大小写)constimgReg=/<img.*?(?:>|\/>)/gi//匹配src属性constsrcReg=/src=[\'\"]?([^\'\"]*)[\'\"]?/iconstarr=str.match(imgReg)for(leti=0;i<ar......
  • 执行shell脚本获取返回值字符串
    std::stringexecuteShellCommand(conststd::string&command){ FILE*pipe=popen(command.c_str(),"r"); if(!pipe)return"ERROR"; charbuffer[128]; std::stringresult=""; while(!feof(pipe)) { if(fgets(buffer,1......
  • 代码随想录算法训练营第八天| 28. 实现 strStr() 459.重复的子字符串
    28.实现strStr()  难点:1,制作KMP算法2,next数组要求的是,找到的下标:0/s[i]==s[j]才可以跳出来代码:1vector<int>getNextList(stringneedle)2{3vector<int>next(needle.size());4intj=0;5next[0]=0;67for(inti=1;i......
  • C#将字符串编译成程序集并执行
    实现将字符串编译为代码并在程序中使用,实际应用可将字符串保存在文件中,程序启动后读取文件中字符转换为代码执行,这样只需要修改文件不改动代码就可以增删或修改程序功能,提高程序的灵活性。例如,要实现下面的代码:usingSystem;namespaceTestSpace{classTest{......
  • Javascript:正则表达式初学者指南(Regex) [a-zA-Z0-9]{4} 表示 包含大小写字母或者数字
    Javascript:正则表达式初学者指南(Regex)[a-zA-Z0-9]{4}表示包含大小写字母或者数字的字符串长度是4https://www.w3cschool.cn/article/55107251.html正则表达式是形成可以在字符串中搜索的模式的一组字符。正则表达式可用于验证,例如验证信用卡号,用于搜索,即通过复杂的文本匹配,......
  • Java 字符串转日期 str 转为 Date 类型 Date date = new SimpleDateFormat("yyyy-MM-
    Java字符串转日期str转为Date类型Datedate=newSimpleDateFormat("yyyy-MM-dd").parse("2022-12-28");https://blog.csdn.net/weixin_35756690/article/details/129059668在Java中,可以使用SimpleDateFormat类将字符串转换为日期。首先,需要创建一个SimpleDateFor......
  • 根据指定分隔符将字符串分割成多个子字符串
    截取函数实现voidGetSubStrings(const string&totalStr,const string&delim, vector<string>&res){   res.clear();   if(totalStr=="")   {       return;   }    char*strArray=newchar[totalStr.length()+1];    ......
  • 字符串相关操作
    1.比较字符串strcmp(testStr, "no")==02.字符串大小写char*strlwr(char*s)将s中的字母都变成小写char*strupr(char*s)将s中的字母都变成大写stringtestStr=“justFortest”;       transform(testStr.begin(),testStr.......
  • 字符串转换整数 (atoi)
    字符串转换整数(atoi)题目:请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一......
  • 字符串中的第一个唯一字符
    字符串中的第一个唯一字符题目:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回-1。示例:s=“leetcode”返回0s=“loveleetcode”返回2解题思路:先遍历一遍字符串,记录所有字符的出现次数,再遍历一次字符串查找该字符的出现次数classSolution{......