常用的字符串处理模型

#include <stdio.h>
#include <string.h>
#include <ctype.h>

/*strstr_while字串模型*/
int Search_count(char *p, char *str)
{
	int ncount = 0;

	if (NULL == p || NULL == str)
	{
		printf("func Search_count() err: %d (NULL == p || NULL = str)\n", ncount);
		return -1;
	}
	else
	{
		while (p = strstr(p, str))
		{
			ncount++;
			p += sizeof(str);

			if (*p == ‘\0‘)
				break;
		}
		return ncount;
	}
}

/*两头堵字串模型1*/
int NoSpaceLen1(char *str, char *newStr)
{
	int i = 0, j = strlen(str) - 1;
	int ncount = 0;

	if (NULL == str || NULL == newStr)
	{
		printf("func NoSpaceLen1() err:-1 (NULL == str)\n");
		return -1;
	}

	while (isspace(str[i]) && str[i] != ‘\0‘)
		i++;
	while (isspace(str[j]) && str[j] != ‘\0‘)
		j--;

	ncount = j - i + 1;
	strncpy(newStr, str+i, ncount);  //将两头去除空格后的子串保存至newStr中
	newStr[ncount] = ‘\0‘;          //此处需要特别注意,不能忘记加字串结尾标志

	return ncount;
}

/*两头堵字串模型2*/
//此函数需要将去除空格后的子串保存到原str中,所以要求其所指向的内存空间可以被修改才可以
int NoSpaceLen2(char *str)
{
	int i = 0, j = strlen(str)-1;
	int ncount = 0;

	if (NULL == str)
	{
		printf("func NoSpaceLen2() err: -1 (NULL == str)!\n");
		return -1;
	}
	else
	{
		while (isspace(str[i]) && str[i] != ‘\0‘)
			i++;
		while (isspace(str[j]) && str[j] != ‘\0‘)
			j--;

		ncount = j - i + 1;
		strncpy(str, str+i, ncount);  //将两头去除空格后的子串保存至原str中
		str[ncount] = ‘\0‘;           //此处需要特别注意,不能忘记加字串结尾标志

		return ncount;
	}
}

/*字符串反转1*/
//此函数需要将反转的字串保存到原str中,所以要求其所指向的内存空间可以被修改才可以
int Inverse(char *str)
{
	int len = strlen(str);
	char *p1, *p2;
	char temp;

	if (NULL == str)
	{
		printf("func Inverse() err: -1 (NULL == str)!\n");
		return -1;
	}
	else
	{
		p1 = str;
		p2 = str + len -1;

		while (p1 < p2)
		{
			temp = *p1;
			*p1 = *p2;
			*p2 = temp;
			p1++;
			p2--;
		}

		return 1;
	}
}

int main()
{
	char *p = "54abcd12133abcd22abcd333333abcd";
	char *s = "";
	char *str = "    sdfssf   ";
	char newStr[1024] = { 0 };
	char s1[20] = "   99 ds  ";
	char s2[20] = "  I love you !  ";

	if (Search_count(p, s) != -1)
		printf("字符串%s中含有%d个字串%s!\n\n", p, Search_count(p, s), s);

	if (NoSpaceLen1(str, newStr) != -1)
		printf("该字串去除前后空格后的字符数: ncount = %d  子串:%s\n\n", NoSpaceLen1(str, newStr), newStr);

	if (NoSpaceLen2(s1) != -1)
		printf("该字串去除前后空格后的字符数: ncount = %d  字串:%s\n\n", NoSpaceLen2(s1), s1);

	Inverse(s2);
	printf("%s\n%d\n", s2);

	return 0;
}

  

时间: 2024-11-05 22:57:58

常用的字符串处理模型的相关文章

ios学习总结--常用的字符串操作

本文总结一下我们常用的字符串的基本操作,在此与大家分享学习. 1.字符串的创建以及初始化 string:方法:创建字符串 NSString *str1 = [NSString string]; str1 = @"Test1"; stringWithstring:方法:用字符串来创建字符串 1 NSString *str2 = [NSString stringWithString:str1]; UTF8String:方法:NSString转换成C字符串 NSString *str2 =

Js中常用的字符串,数组,函数扩展

由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展,一来可以练练手,二来也锻炼下自己的代码能力.由于代码里面的注释自认为已经非常详细,所以就直接贴代码了. 1. 字符串扩展: ;(function() { var method, stringExtends = { /** * 删除字符串开始和结尾的空白 * @returns {string} */ stri

Java中常用的字符串API

Java中常用的字符串API 这些API都封装在了 import java.lang; (默认导入无需手工导入) 字符串.length() 返回字符串的长度 字符串1.equals(字符串2) 判断两个字符串内容是否一致(不能用==) 字符串1.equalsIgnoreCase(字符串2) 判断两个字符串内容是否一致(不区分大小写) 字符串.toLowerCase() 返回小写字符串 字符串.toUpperCase() 返回大写字符串 字符串1.concat(字符串2) 返回字符串1接上字符串2

java中常用的字符串的截取方法

java中常用的字符串的截取方法   1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len=s.length(); 2.charAt() 截取一个字符 例:char ch; ch="abc".charAt(1); 返回'b' 3.getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target

SQL Server 常用连接字符串

C# 连接SQL数据库 常用连接字符串 http://www.cnblogs.com/delphinet/archive/2011/06/24/2088765.html

LoadRunner中常用的字符串操作函数

LoadRunner中常用的字符串操作函数有:                strcpy(destination_string, source_string);               strcat(string_that_gets_appended, string_that_is_appended);51Testing软件测试网:J3~c:c[(wR%A2l               atoi(string_to_convert_to_int); //returns the integ

Linux下常用函数-字符串函数

inux下常用函数-字符串函数 atof(将字符串转换成浮点型数)  相关函数   atoi,atol,strtod,strtol,strtoul 表头文件   #include <stdlib.h> 定义函数   double atof(const char *nptr); 函数说明   atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数 字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换 ,并将结果返回.参数nptr字符串可包含正负号.小数点或E

ACM中常用算法----字符串

ACM中常用算法--字符串 ACM中常用的字符串算法不多,主要有以下几种: Hash 字典树 KMP AC自动机 manacher 后缀数组 EX_KMP SAM(后缀自动机) 回文串自动机 下面来分别介绍一下: 0. Hash 字符串的hash是最简单也最常用的算法,通过某种hash函数将不同的字符串分别对应到不同的数字.进而配合其他数据结构或STL可以做到判重,统计,查询等操作. #### 字符串的hash函数: 一个很简单的hash函数代码如下: ull xp[maxn],hash[max

C++常用的字符串处理函数-全

这是自己用stl实现的一些字符串处理函数和常用的字符串处理技巧,经验正基本无误,可直接使用,若有问题,可相应列出 包括:split string to int int to string join #include <string.h> #include <vector> #include <string> //字符串分割函数,类似python的split vector<string> split(char s[],const char *delim) {