C++常用字符串处理函数及使用示例.net

时间:2023-03-10 03:52:04 作者:请食鸡肋 综合材料 收藏本文 下载本文

【导语】“请食鸡肋”通过精心收集,向本站投稿了5篇C++常用字符串处理函数及使用示例.net,以下是小编收集整理后的C++常用字符串处理函数及使用示例.net,仅供参考,希望对大家有所帮助。

篇1:C++常用字符串处理函数及使用示例.net

char *strcpy(char *s1, const char *s2) 将字符串s2复制到字符串数组s1中,返回s1的值 char *strncpy(char *s1, const char *s2, size_t n) 将字符串s2中最多n个字符复制到字符串数组s1中,返回s1的值 char *strcat(char *s1, const char *s2) 将字符串s2添

char *strcpy(char *s1, const char *s2)

将字符串s2复制到字符串数组s1中,返回s1的值

char *strncpy(char *s1, const char *s2, size_t n)

将字符串s2中最多n个字符复制到字符串数组s1中,返回s1的值

char *strcat(char *s1, const char *s2)

将字符串s2添加到字符串s1的后面,s2的第一个字符重定义s1的null终止符。返回s1的值

char *strncat(char *s1, const char *s2, size_t n)

将字符串s2中最多n个字符添加到字符串s1的后面。s2的第一个字符重定义s1的null终止符。返回s1的值

int strcmp(const char *s1, const char *s2)

比较字符串s1和字符串s2。函数在s1等于、小于或大于s2时分别返回0、小于0或者大于0的值

int strncmp(const char *s1, const char *s2, size_t n)

比较字符串s1中的n个字符和字符串s2。函数在s1等于、小于或大于s2时分别返回0、小于0或者大于0的值

char * strtok(char *s1,const char *s2)

用一系列strtok调用将s1字符串标记化(将字符串分成各个逻辑组件,如同一行文本中的每个单词),用字符串s2所包含的字符分隔。 首次调用时包含s1为第一个参数,后面调用时继续标记化同一字符串,包含NULL为第一个参数。每次调用时返回当前标记指针。如果函数调用时不再有更多标记,则返回NULL

size_t strlen(const char *s)

确定字符串长度,返回null终止符之前的字符数

使用示例:

//源代码在Visual c++6.0环境下编译通过

#include

#include

int main

{

char str1[50] = “Happy birthday to ”, str2[] = “coffeehu”;

char temp1[100],temp2[6], * temp;

char str[] = “This is a sentence with 7 tokens”;

strcpy(temp1, str1);

strncpy(temp2, str1, 5);

temp2[5] = '\\0';

cout << “strcpy result: ” <<< “\\n”;

cout << “strncpy result: ” << temp2 << “\\n”;

cout << “strcat result: ” << strcat(str1, str2) << “\\n”;

cout << “strncat result: ” << strncat(str1, str2, 6) <<“\\n”;

cout << “strcmp result: ” << strcmp(temp2,“Happ”) <<“\\n”;

cout << “strncmp result: ” << strncmp(str1,“Happy”,5) <<“\\n”;

//strtok function eg.

temp = strtok(str, “ ”);

while(temp != NULL)

{

cout << temp <<'\\n';

temp = strtok(NULL, “ ”);

}

cout << “strlen result: ” << strlen(str2) <<“\\n”;

return 0;

}

原文转自:www.ltesting.net

篇2:c语言中字符串函数的使用

#include

#include

/*

char s1[]=“I am a student”;

char s2[20]=“teacher”;

char s3[]=“student”;

int result;

char s4[20],*p;

1.串的长度

int strlen(char *str):

printf(“%d\\n”,strlen(s1));//长度为14

printf(“%d\\n”,strlen(s2));//长度为7

2.复制

char *strcpy(char *str1,char *str2):

strcpy(s4,s2);//把s2复制给s4

printf(“%s\\n”,s4);//输出teacher

3.比较

int strcmp(char *str1,char *str2):

result=strcmp(s2,s3);

printf(“%d\\n”,result);//s2>s3

4.字符串定位

char *strchr(char *str,char ch);

p=strchr(s1,'s');//p指向在s1中字符's'的位置

printf(“%s\\n”,p);//输出student

5.子串查找

char *strstr(char *s1,char *s2);

p=strstr(s1,s3);//p指向在s1中字符's'的位置

printf(“%s\\n”,p);//输出student

6.连接

char * strcat(char *str1,char *str2):

strcat(s2,s3);

printf(“%s\\n”,s2);//输出teacherstudent

*/

void ReverseName(char *name,char *newName){

char *p;

p=strchr(name,' ');//字符定位

*p='\\0';

printf(“%s\\n”,name);

printf(“%s\\n”,p);

strcpy(newName,p+1);//复制

printf(“--%s\\n”,newName);

strcat(newName,“,”);//连接

strcat(newName,name);//连接

*p=' ';

printf(“%s\\n”,name);

}

int main(){

char name[]=“jie wang”,newName[30];

ReverseName(name,newName);

printf(“hello world\\n”);

return 0;

}

篇3:jstl 字符串处理函数

作者: 字体:[增加 减小] 类型:转载

最近用jstl1.0 的时候经常要在页面上对字符串做改动,在网上找了一个写的不错的,借鉴一下

JSTL使用表达式来简化页面的代码,这对一些标准的方法,例如bean的getter/setter方法,请求参数或者context以及session中的数据的访问非常方便,但是我们在实际应用中经常需要在页面调用对象的某些方法,例如我需要调用字符串的length方法来获取字符串的长度时,在以往的开发过程中我们必须把对象先转为String类,然后在调用其length方法,这样的代码繁琐而且容易出错,

因此JSTL内置了几个用于字符串操作的方法,可以直接在表达式中使用,大大的简化了代码,提供代码的可读性。在JSTL的表达是中要使用一个函数,其格式如下

${ns:methodName(args....)}

在使用这些函数之前必须在JSP中引入标准函数的声明

<%@ taglib prefix=“fn” uri=“java.sun.com/jsp/jstl/functions” %>

下面是JSTL中自带的方法列表以及其描述

函数名函数说明使用举例contains判断字符串是否包含另外一个字符串containsIgnoreCase判断字符串是否包含另外一个字符串(大小写无关)endsWith判断字符串是否以另外字符串结束escapeXml把一些字符转成XML表示,例如<字符应该转为><${fn:escapeXml(param:info)}indexOf子字符串在母字符串中出现的位置${fn:indexOf(name, “-”)}join将数组中的数据联合成一个新字符串,并使用指定字符格开${fn:join(array, “;”)}length获取字符串的长度,或者数组的大小${fn:length(shoppingCart.products)}replace替换字符串中指定的字符${fn:replace(text, “-”, “•”)}split把字符串按照指定字符切分${fn:split(customerNames, “;”)}startsWith判断字符串是否以某个子串开始substring获取子串${fn:substring(zip, 6, -1)}substringAfter

获取从某个字符所在位置开始的子串

${fn:substringAfter(zip, “-”)}substringBefore获取从开始到某个字符所在位置的子串${fn:substringBefore(zip, “-”)}toLowerCase转为小写${fn.toLowerCase(product.name)}toUpperCase转为大写字符${fn.UpperCase(product.name)}trim去除字符串前后的空格${fn.trim(name)}

篇4:C语言 字符串的内存拷贝处理函数

对于字符串来说,我们运用字符串中的str类别的函数,但是我们还有一些关于内存的拷贝函数,

C语言 字符串的内存拷贝处理函数

。他们操作的对象是内存,然后可以接受任何类型的数据进行拷贝。

这个是里面的memcpy,然后我们一起查看一下MSDN看一看他的原型:

void *memcpy(void *dest,const void *src,size_t count);

与strcpy不同的就是添加了第三个参数,确定操作的字节数,然后参数类型还有返回类型都是void*

,这表示他可以拷贝任意类型的数据。

然后我们看一下实现:

memcpy:

void *my_memcpy(void *str,const void *Dstr,int count) //从内存地址开始改变,并确定改变长度,所以用万能类型去接受{ char *pstr = (char *)str; char *pDstr = (char *)Dstr;assert((str!=NULL) && (Dstr != NULL)); if(str == Dstr) //位置相同情况下直接返回需要改变的 return (char *)Dstr; while(count-- >0){*pstr++ = *pDstr++;} return str;}

然后会出现一个问题,如果我们拷贝的数据中Dstr的起始位置在STR操作之间,那么在改变str时会出现副作用,将导致我们的拷贝结果不正确,所以我们应该考虑到会覆盖的情况,

在函数库中有一个memmove函数。

memmove:

void *my_memmove(void *pst,const void *Dpst,int size){ void *p = pst; char *pstA = (char *)pst; char *pstB = (char *)Dpst;assert((pst != NULL) &&(Dpst != NULL)); if(pstB

就是遇到被拷贝的空间起始处在拷贝空间中,将会遇到拷贝内存覆盖的现象。在这种情况下我们将考虑从尾部进行拷贝。所以进行了判断。

篇5:使用c函数实现的常用函数

/* strcat的实现 */

#include

char* my_strcat (char* strDest,const char* strSrc)

{

char *ret = strDest;

assert ((strDest != NULL) && (strSrc != NULL));

while (*strDest != '\\0')

{

strDest++;

}

while ((*strDest++ = *strSrc++) != '\\0')

{

}

*strDest = '\\0';

return ret;

}

/* strcpy的实现 */

#include

char* my_strcpy (char* strDest, const char* strSrc)

{

assert ((strDest != NULL) && (strSrc != NULL));

char* address = strDest;

while ((*strDest++ = *strSrc++) != '\\0')

{

}

return address;

}

/* split的实现 */

int my_split (char *strOld, char **strNew)

{

assert ((strOld != NULL) && (strNew != NULL));

char *emp = *strNew;

int res = 0;

for (;;)

{

if ((*strOld >= '0') && (*strNew <= '9'))

{

int j = *strOld - '0';

res = res * 10 + j;

strOld++;

}

else if ((*strOld >= 'A') && (*strOld <= 'z'))

{

*emp++ = *strOld;

strOld++;

}

else

{

break;

}

}

return res;

}

/* strcmp的实现 */

int my_strcmp (const char *strDest, const char* strSrc)

{

while (*strDest)

{

if (*strDest != *strSrc)

{

return (*strDest - *strSrc) >0 ? 1 : -1;

}

strDest++;

strSrc++;

}

if (*strDest)

{

return -1;

}

else

{

return 0;

}

}

/* string 转换为int */

int my_atoi (const char *str)

{

int result = 0;

int sign = 1;

if ('0' <= str[0] && str[0] <= '9' || (str[0] == '-') || (str[0] == '+'))

{

if (str[0] == '+' || str[0] == '-')

{

if (str[0] == '-')

{

sign = -1;

}

else

{

str++;

}

}

}

while (*str>='0' && *str<='9')

{

result = result * 10 + (*str - '0');

str++;

}

return result * sign;

}

/* int 转换为16进制 */

void my_itoa (char *buffer, unsigned int num)

{

int i;

unsigned int tmp;

buffer[0] = '0';

buffer[1] = 'x';

i = 9;

while (num)

{

tmp = num % 16;

if (tmp >= 10)

{

buffer[i] = tmp - 10 + 'A';

}

else

{

buffer[i] = tmp + '0';

}

i--;

num /= 16;

}

while (i >= 2)

{

buffer[i--] = '0';

}

buffer[10] = 0;

}

/* 字符串逆序 */

int str_reversed(char *str)

{

int i = 0;

char temp = 0;

char *ps;

char *pe;

if (!str)

{

return -1;

}

ps = a;

while (*a != 0)

{

a++;

}

pe = a;

for (i=0; i<(pe-ps)/2;i++)

{

temp = *(ps+i);

*(ps+i) = *(pe-i-1);

*(pe-i-1) = temp;

}

return 0;

}

/* 冒泡排序 */

void bubble_sort (int arr[], int size)

{

int i,j,flag,temp;

for (i=1; i<=size-1; i++)

{

flag = 0;

for (j=0; j<=size-i-1; j++)

{

if (arr[j] >arr[j+1])

{

flag = 1;

temp = arr[i];

arr[i] = arr[i+1];

arr[i+1] = temp;

}

if (flag == 0)

{

break;

}

}

}

}

/* 链表逆序*/

list reverse_list (list n)

{

if (!n)

{

return n;

}

list cur = n.next;

list pre = n;

list tmp;

pre.next = NULL;

while (NULL != cur.next)

{

tmp = cur;

tmp.next = pre;

pre = tmp;

cur = cur.next;

}

return tmp;

}

/* 判断是否是质数(素数) */

int is_prime (int n)

{

int i;

if (n < 2) return 0;

if (n == 2) return 1;

//判断时只需判断到n的开方即可

for (i=2; i*i<=n; i++)

{

if (n%i == 0) return 0;

}

return 1;

在VB中使用API函数 (之一)VB

Python中的getopt函数使用详解

c++期末试卷及答案

net笔试题

PHP基础教程 字符串

Python3字符串学习教程

NET架构师的职责

函数课件

函数指针

Visual Basic 10介绍.net

C++常用字符串处理函数及使用示例.net(锦集5篇)

欢迎下载DOC格式的C++常用字符串处理函数及使用示例.net,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档