第10章-字符串

第10章-字符串
第10章-字符串

第十章

一、选择题。

10.1以下能正确进行字符串赋值、赋初值的语句组是()。

A)char s[5] = {…a?,?e?,?i?,?o?,?u?};

B)char *s ;s =“good!”;

C)char s[5] = “good!”;

D)char s[5] ; s=“good!”;

10.2设有定义:char str[]=”ABCD”;*p = str;则语句printf(“%d\n”, *(p+4));的输出

结果是();

A)68 B)0 C)字符D的地址D)不确定的值

10.3语句printf(“%d\n”,strlen(“AST\n012\1\\”));的输出结果是();

A)11 B)10 C)9 D)8

10.4有以下程序:

#include

char fun( char *c)

{ if ( *c<=?Z?&& *c>=?A?) *c - =?A?-…a?;

return *c; }

main()

{ char s[81], *p = s;

gets( s );

while( *p )

{ *p = fun( p ); putchar( *p ); p++; }

putchar( …\n?); }

若运行是从键盘输入:OPEN THE DOOR (此处代表Enter键),则程序运行后的输出结果是()。

A)oPEN tHE dOOR B)open the door

C)OPEN THE DOOR D)Open The Door

10.5有以下程序:

#include

#include

void fun( char *w, int m)

{ char s, *p1, *p2;

p1 = w; p2 = w + m – 1;

while( p1

{ s = *p1++; *p1 = *p2--; *p2 = s ;}

}

main()

{ char a[] = “ABCDEFG”;

Fun( a, strlen(a) ); puts ( a ); }

程序运行后的输出结果是()。

A)GFEDCBA B)AGADAGA C)AGAAGAG D)GAGGAGA 10.6有以下程序:

#include

main()

{ char s[] = “ABCD”, *p;

for( p = s; p< s+4; p++) printf(“%s\n”, p); }

程序运行后的输出结果是()。

A)ABCD B)A C)D D)ABCD

BCD B C ABC

CD C B AB

D D A A

10.7设有定义语句:char *aa[] = {“abcd”,”ABCD”};则以下叙述中正确的是

()。

A)aa数组元素的值分别是字符串“abcd”和“ABCD”

B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

C)aa数组的两个元素分别存放的是含有四个字符的一维数组的首地址

D)aa数组的两个元素中各自存放了字符…a…和…A?的地址

10.8有以下程序:

#include

main()

{ char ch[2][5] = {“6937”,”8254”}; *p[2]; int i, j, s = 0;

for( I = 0; i<2;i++) p[i] = ch[i];

for( I = 0;I<2;i++)

for(j = 0;p[i][j]>?\0?&&p[i][j]<=?9?;j+ = 2)

s = 10 * s +p[i][j] –…0?;

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

}

程序欲行的输出结果是()。

A)6385 B)69825 C)63825 D)693825

10.9有以下程序:

#include

main()

{ char *alpha[6] = {“ABCD”,”EFGH”,”IJKL”,

”MNOP”,”QRST”,”UVWX”}, * *P;

int i; p =alpha;

for( I = 0;i<4;i++) printf(“%s”, p[i]);

printf(“\n”);

}

程序运行后的输出结果是()。

A)ABCDEFGHIJKL B)ABCD C)ABCDEFGHIJKLMNOP

D)AEIM

10.10库函数strcpy用以复数字符串。若有定义和语句:

Char str1[]=”string”.str2[8], *str3, *str4 =”string”;

则以下对库函数strcpy的运用中错误的是()。

A)strcpy( str1,”HELLO1”) B)strcpy( str2,”HELLO2”)

C)st rcpy( str3,”HELLO3”) D)strcpy( str4,”HELLO4”)

二、填空题。

10.11以下程序运行后的结果是()。

#include

main()

{ char b[]=”ABCDEFG”, *chp = &b[7];

while( --chp> &b[0]) putchar( *chp );

putchar(…\n?);

}

10.12以下程序运行后的输出结果是()。

#include

void fun( char *a1, char *a2, char *a3 )

{ int k ;

for( k = 0; k < n; k++)

a2[k] = ( a1[k]-…A?-3+26)%26 +?A?;

a2[n] = 0

}

main()

{ char s1[5]=“ABCD”,s2[5];

fun( s1,s2,4 ); puts(s2);

}

10.13以下程序运行后的输出结果是()。

#include

main()

{ char *p[] = { “BOOL”,”OPK”,”H”,”SP”}; int i;

for( I = 3;I >= 0;i--,i--)

printf(“%c”, *p[i]); printf( “\n” );

}

10.14有以下程序,若运行时从键盘输入字符串qwerty<回车>和abcd<回车>,则

程序的输出结果是()。

#include

#include

strle( char a[],char b[] )

{ int num = 0, n = 0;

while( *(a+num)!=?\0?) num++;

while( b[n]){ *(a+num) = b[n]; num++; n++;}

reture ( num );

}

main()

{ char str1[81], char str2[82], *p1 = str1, *p2 = str2;

gets( p1 ); gets( p2 ); printf(“%d\n”, strle( p1,p2 ));

}

10.15以下程序运行后的输出结果是()。

#include

#include

#include

void fun( char str[] )

{ int I, j;

for( I =0,j = 0;str[i]; i++ ) if( isalpha( str[i])) str[j++]=str[i];

str[j] = …\0?;

}

main()

{ char ss[80] = “It is!”;

fun(ss); printf(“%s\n”,s s);

}

10.16以下fun函数的功能是将一个字符串的内容颠倒国哀,请填空。

#include

#include

void fun( char str[] )

{ int I,j,k;

for(i=0,j=( );i

{ k = str[i]; str[i] =str[j]; str[j] =k;}

}

10.17以下程序运行后的输出结果是()。

#include

#include

main()

{ printf( “%d\n”, strlen(“s\d\016\0end”)); }

10.18以下程序运行后的输出结果是()。

#include

#include

main()

{ char s[20] = “goodgood!”, *sp = s;

sp = sp + 2; sp = “ to”; puts(s);

}

三、编程题。

10.19请编写函数mygets和myputs,其功能分别与gets和puts相同,函数中用

getchar和putchar读入和输出字符。

10.20请编写函数,判断一字符串是否是回文。若是回文函数返回值为1,;否则

返回值为0.回文诗顺读和倒读都一样的字符串。

10.21请编写函数,删除字符串中指定位置(下标)上的字符。删除成功函数返

回被删除字符;否则返回空值。

C字符串处理函数全

strcpy(char destination[], const char source[]); strcpy:将字符串source拷贝到字符串destination中。 strcpy函数应用举例 原型:strcpy(char destination[], const char source[]); 功能:将字符串source拷贝到字符串destination中 例程: #include #include void main(void) { char str1[10] = { "TsinghuaOK"}; char str2[10] = { "Computer"}; cout < #include void main(void) { char str1[10] = { "Tsinghua "}; char str2[10] = { "Computer"}; cout <

C语言课程设计报告---字符串处理

课程设计报告 课程设计题目:研究生初试录取 学生:俊 专业:计算机应用技术 班级: 1140302 指导教师:宋文琳 2012年 06 月 23日

目录 一)实验题目 (3) 二)实验目的 (3) 三)实验要求 (3) 四)实验思路 (4) 五)实验过程 (6) 六)实验调试和结果 (9) 七)实验小结 (13)

实验题目 字符串处理 (1)不使用系统库函数,编写多个函数实现; (2)定义字符数组存放字符串,从键盘输入; (3)调用不同的函数,实现字符串的连接、拷贝、比较、求字符串长度、对字符串字符进行排序、查找字符串中某个字符是否存在; (4)分别输出以上字符串处理的结果。 二)实验目的 本次课程设计的主要目的是综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体等相关容的综合应用,使学生能进一步熟悉掌握C语言的基本语法,进一步提升编程能力并逐步培养编程思维,进而不断提高学生解决问题的能力,并为以后的语言学习打下良好的基础。三)实验要求 1. 学生独立完成课程设计的主要容; 2. 按照实验课表安排进行,不得无故旷课; 3.按照选题规则确定课程设计题目,不可随意更换,但可在完成规定的任务之后,根据 个人兴趣选做其它题目; 4.严格按照报告格式撰写课程设计报告; 5.程序实现方式可以自选,可采用指针、数组或其任意组合方式完成。

四)实验思路1)整体思路

五)实验过程 代码: #include void main() {void lianjie(char a[],char b[]); void kaobei(char a[],char b[]); void bijiao(char a[],char b[]); void qiuchangdu(char a[],char b[]); void paixu(char a[],char b[]); void chazhao(char a[],char b[],char c); char str1[50],str2[40]; char t; int i; printf("需要进行的操作:1.连接;2.拷贝;3.比较;4.求长度;5.排序;6.查找\n"); scanf("%d",&i); if(i==1) {printf("要连接的字符串1:"); scanf("%s",str1); printf("要连接的字符串2:"); scanf("%s",str2); lianjie(str1,str2);} else if(i==2) {printf("拷贝的字符串1:"); scanf("%s",str1); printf("要拷贝的字符串2:"); scanf("%s",str2); kaobei(str1,str2);} else if(i==3)

网页设计与开发第10章试卷及答案

《网页设计与开发第10章》试卷 一、 选择题
1) 解释执行 JavaScript 的是( A.服务器 B.编辑器 C.浏览器 D.编译器 答案: C 2) DOM 的含义是( A.文档对象模型 B.层叠样式表 C.客户端脚本程序语言 D.级联样式表 答案: A 3)关于 JavaScript 的说法错误的是( A.是一种脚本编写语言 B.是面向结构的 C.具有安全性能 D.是基于对象的 答案: B 4)向页面输出一个“Hello World”的正确 JavaScript 的语句是( A.response.write("Hello World") B.document.write("Hello World") C.("Hello World") D.echo("Hello World") ) ) ) )

答案: B 5)JavaScript 中的属性操作符是( A.数学操作符(+和-) B.条件操作符(<和>) C.点操作符(.) D.说明操作符(#) 答案: C 6)JavaScript 变量中的标识符不能以哪一项开始?( A.字母 B.数字 C.$ D.下划线 答案: B 7) ( A. ; B. , C.} D.) 答案: A 8)计算一个圆面积的正确语句是( A.area = pi * r ^2; B.area = Math.PI * r^2; C.area = Math.PI * Math.sqr(r); D.area = Math.PI * r * r; 答案: D ) )表示一个 JavaScript 语句结束。 ) )

C所有处理字符串函数和用法

C#字符串函数大全 C#字符串函数大全将包括Len Len(string|varname) 、Trim Trim(string) 、Ltrim Ltrim(string)等多项内容 LenLen(string|varname)返回字符串内字符的数目,或是存储一变量所需的字节数。 TrimTrim(string)将字符串前后的空格去掉 LtrimLtrim(string)将字符串前面的空格去掉 RtrimRtrim(string)将字符串后面的空格去掉 MidMid(string,start,length)从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串 LeftLeft(string,length)从string字符串的左边取得length长度的字符串 RightRight(string,length)从string字符串的右边取得length长度的字符串 LCaseLCase(string)将string字符串里的所有大写字母转化为小写字母 UCaseUCase(string)将string字符串里的所有大写字母转化为大写字母 StrCompStrComp(string1,string2[,compare])返回string1字符串与string2字符串的比较结果,如果两个字符串相同,则返回0,如果小于则返回-1,如果大于则返回1 InStrInStr(string1,string2[,compare])返回string1字符串在string2字符串中第一次出现的位置 SplitSplit(string1,delimiter[,count[,start]])将字符串根据delimiter拆分成一维数组,其中delimiter用于标识子字符串界限。如果省略,使用空格("")作为分隔符。

中国石油大学(华东)c语言在线测评答案 第10章字符串(级亲测正确)doc资料

10.1 字符转换 描述提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。 输入一个以回车符为结束标志的字符串(少于80个字符)。 输出把字符串中的所有数字字符(‘0’...‘9’)转换为一个整数并输出。 #include #include int main() { char s[80]; int i,k,n=0; gets(s); k=strlen(s); for(i=0;i='0'&&s[i]<='9') n=n*10+(s[i]-'0'); printf("%d\n",n); return 0; } 10.2 合并字符串 输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到大排列。 输入:两个已经排好顺序(升序)的字符串 输出:一个合并在一起的有序(升序)的字符串 要求:设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。 如果采用先进行串连接,然后再进行排序的算法,则效率太低了。

#include #include int main() { char a[100],b[100],t; int k,i,j; gets(a); gets(b); strcat(a,b); k=strlen(a); /*冒泡法排序*/ for(i=1;ia[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } puts(a); return 0; } 10.3 删除重复字符 背景:输入一个长度不超过 100 的字符串,删除串中的重复字符。 输入:输入要检查的字符串,长度不超过100个字符。例如:abacaeedabcdcd。输出:删除重复字符后的字符串。例如:abced。

C语言字符串的输入和输出

C语言字符串的输入和输出 字符串的输入和输出 %c人为加入\0进行输入输出 %s直接输入输出 *输入输出字符串时字符数组应有足够的存储空间,指针变量作为输入项时,指针必须已经指向确切的、足够大的存储空间 %s的使用 scanf("%s",地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 例:char str[15]; scanf("%s",str); abc123 1.不读入空格和回车,从空格处结束 2.输入字符串长度超过字符数组元素个数,不报错 3.当输入项为字符指针时,指针必须已指向确定的有足够空间的连续 存储单元 4.当为数组元素地址时,从此元素地址开始存放 2.printf("%s",地址值) 输出时遇到第一个'\0'为止 3.gets和puts函数 开头必须stdio.h #include"stdio.h"

1.gets(地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 4.当为数组元素地址时,从此元素地址开始存放 5.printf("%s",地址值) 输出时遇到第一个'\0'为止 6.gets和puts函数 开头必须stdio.h #include"stdio.h" 1.gets(地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 7.例: char str[10]; gets(str); 包括空格符 8. 2.puts(字符串起始地址) 遇第一个'\0'结束,自动加入换行符 9.字符串数组:数组中每个元素都是一个存放字符串的数组 可以将一个二维数组看作是字符串数组 10.char ca[3][5]={"A","BB","CCC"}; A\0 B B\0 C C C\0 字符型指针数组 char*pa[3]={"a","bb","ccc"}; pa[0]pa[1]pa[2] 可以重新赋值gets(pa[2]);

第8章字符串

第十一章字符串 1D 解析:字符串在 C 语言中年干存储时,应该用数组或者是指针进行存储数据。 A 选项中str 为数组,但是后面的赋值的对象中的 '\064'为一个字符,不能构成一个字符串,字符串必须有一个结束符,即: '\0'。故 A 答案是错误的。 B 答案中的str为一个字符变量,变量不能用来存储字符串。故B选项是错误的。C答 案同理。只有 D 答案中符合字符串的定义规则。 2A 解析:A选项中ss[1]可以看作是一个地址常量,其值不能改变,所以不可以对其赋值。但是在定义二维数组的时候,对其进行初始化是允许的,如选项B。选项C中定义的值指针数组,数组中的每一个元素都是指针,所以ss[1]代表的是一个指针,所以指针可以指向一个字符串,即让该指针变量指向该字符串。 选项D中的ss为一个指针数组,所以指针数组中元素都为指针,此时为让该变量指向了“ right?”字符串。 3A 解析:str是地址常量,p是指针变量,两者类型不一致,选项B错误。str数组的长度是20,而p所指的字符串遇到=0'就结束,本题中其长度应该为7,选项C错误。同理,既然str数组的长度与p所指字符串长度不同,所以D答案中的str中的内容为在存储字符串以后的后面为13个‘ \0' p的内容为:7个有效字符。 4C 解析:对于数组p,只有三个元素,分别是’a'b'c:所以sizeof(p)的输出结果应该是3,对于数组q,存储了四个元素,分别是’a','b:'c以及'\0'。所以sizeof (q)的输出结果是4。 5C 解析:对于数组a,只有四个元素,分别是'\'\''以及'\0;所以sizeof(a)的输出结果应该是4,对于数组b,存储了三个元素,分别是‘X;'y','z。。所以sizeof (b)的输出结果是3。所以数组a的长度大于b数组的长度。 6C 解析:数组a中存储了7个字符,分别是'a ; '0 ; '\0 ; '0 ; 'a, '0 ' , '\0 ',当使用sizeof(a)统计计数的时候,会统计计算这7个字符,但是当用strlen (a)统计数组元素个数的时候,遇到 '\0'的时候就会结束,所以最终的输出结果是7 2 。 7B 解析:ps=s语句使ps指向数组s的首地址,即指向元素a,对于表达式*p+4,由于*的优先级高于+,所以进行间接访问运算,*p得到a,再+4,根据ASCII 码的顺序,最后的输出结果应该是e,答案为B。 8B 解析:选项A的getc ()函数完成的是从文件中读入一个字符,而不是题目所要求的从键盘读入一个字符串,错误。选项C的getchar ()函数每次读入的是 一个字符变量,而不是字符串,错误。选项D的scanf ()函数,通过格式控制符%$可以读入字符串变量,但是遇到空格会作为输入数据的分隔符,不会被作

C语言字符串操作总结大全(超详细)

C语言字符串操作总结大全(超详细) 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串 strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1) 查找字符串 strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移 * 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符 2)字符串到数值类型的转换 strtod(p, ppend) 从字符串p 中转换double 类型数值,并将后续的字符串指针存储到ppend 指向的char* 类型存储。 strtol(p, ppend, base) 从字符串p 中转换long 类型整型数值,base 显式设置转换的整型进制,设置为0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0 前缀以解释为八进制格式整型 atoi(p) 字符串转换到int 整型 atof(p) 字符串转换到double 符点数 atol(p) 字符串转换到long 整型 3)字符检查 isalpha() 检查是否为字母字符 isupper() 检查是否为大写字母字符 islower() 检查是否为小写字母字符 isdigit() 检查是否为数字 isxdigit() 检查是否为十六进制数字表示的有效字符 isspace() 检查是否为空格类型字符 iscntrl() 检查是否为控制字符 ispunct() 检查是否为标点符号 isalnum() 检查是否为字母和数字 isprint() 检查是否是可打印字符 isgraph() 检查是否是图形字符,等效于isalnum() | ispunct()

第10章-字符串

第十章 一、选择题。 10.1以下能正确进行字符串赋值、赋初值的语句组是()。 A)char s[5] = {…a?,?e?,?i?,?o?,?u?}; B)char *s ;s =“good!”; C)char s[5] = “good!”; D)char s[5] ; s=“good!”; 10.2设有定义:char str[]=”ABCD”;*p = str;则语句printf(“%d\n”, *(p+4));的输出 结果是(); A)68 B)0 C)字符D的地址D)不确定的值 10.3语句printf(“%d\n”,strlen(“AST\n012\1\\”));的输出结果是(); A)11 B)10 C)9 D)8 10.4有以下程序: #include char fun( char *c) { if ( *c<=?Z?&& *c>=?A?) *c - =?A?-…a?; return *c; } main() { char s[81], *p = s; gets( s ); while( *p ) { *p = fun( p ); putchar( *p ); p++; } putchar( …\n?); } 若运行是从键盘输入:OPEN THE DOOR (此处代表Enter键),则程序运行后的输出结果是()。 A)oPEN tHE dOOR B)open the door C)OPEN THE DOOR D)Open The Door 10.5有以下程序: #include #include void fun( char *w, int m) { char s, *p1, *p2; p1 = w; p2 = w + m – 1; while( p1 main()

中国石油大学(华东)C语言在线测评答案 第10章字符串(2013级亲测正确)

中国石油大学(华东)C语言在线测评答案第10章字符串(2013级亲测正确)

10.1 字符转换 描述提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。 输入一个以回车符为结束标志的字符串(少于80个字符)。 输出把字符串中的所有数字字符 (‘0’...‘9’)转换为一个整数并输出。 #include #include int main() { char s[80]; int i,k,n=0; gets(s); k=strlen(s); for(i=0;i='0'&&s[i]<='9') n=n*10+(s[i]-'0'); printf("%d\n",n); return 0; } 10.2 合并字符串 输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到大排列。

输入:两个已经排好顺序(升序)的字符串 输出:一个合并在一起的有序(升序)的字符串 要求:设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。 如果采用先进行串连接,然后再进行 排序的算法,则效率太低了。 #include #include int main() { char a[100],b[100],t; int k,i,j; gets(a); gets(b); strcat(a,b); k=strlen(a); /*冒泡法排序*/ for(i=1;ia[j+1]) { t=a[j]; a[j]=a[j+1];

Linux下常用C语言字符串操作函数

Linux下常用C语言字符串操作函数 stroul, strdup snprintf() atio C中常用字符串操作函数 #include size_t strlen(const char *s) 测量字符串长度s的实际长度。 例如s[20]="abc",那么strlen(s)的结果是3,而不是20.这就是实际长度 char *strcat(const char *s1, const *s2) 将字符串s2连接到s1的尾部。从s1的\0开始。 int strcmp(const *s1,const *s2) 比较s1和s2。 s1 = s2的时候返回值=0 s1 < s2的时候返回至<0 s1 > s2的时候返回值>0 char *strchr(const char *s, char c); 返回s中首次出现C的位置的指针。如果s中不存在c则返回NULL char *strrchr(const char *s, char c );返回s中最后一次出现c的位置的指针。如果没有,则返回0 char *strstr(const char *haystack, const char *needle);返回haystack中needle字符串首次出现的位置的指针(不比较结束符NULL)。若果没找到则返回NULL 限定长度的比较,拷贝和追加函数 int strncmp(char *s1, const char *s2, size_t n);(这些都是针对字符串的前n个字符来操作的) char *strncpy(char *dest, const char *src, size_t n); char *strncat(char *dest, const char *src, size_t n); char *strdup(char *s)返回指向被复制的字符串的指针,所需空间由malloc()分配而且需要free释放空间 int atoi(const char *nptr);将字符串转换成整型数

各种C语言字符串操作,str....

字符串操作 strchr 原型:char *strchr(const char* _Str,int _Val) char *strchr(char* _Str,int _Ch) 头文件:#include 功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,返回的地址是被查找字符串指针开始的第一个与Val相同字符的指针,如果s中不存在c则返回NULL。 返回值:成功则返回要查找字符第一次出现的位置,失败返回NULL strcmp 原型:extern int strcmp(const char *s1,const char *s2); C/C++函数,比较两个字符串 设这两个字符串为str1,str2, 若str1==str2,则返回零; 若str1>str2,则返回正数; 若str1

对于设置了LC_COLLATE语言环境的情况下,则根据LC_COLLATE设置的语言排序方式进行比较。例如:汉字,根据拼音进行比较。 strcpy 原型:char *strcpy(char *dest, const char *src); 头文件:#include 和#include 功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 strcspn 原型:size_t strcspn(const char *s, const char *reject); 头文件:#include 功能:顺序在字符串s1中搜寻与s2中字符的第一个相同字符,包括结束符NULL,返回这个字符在S1中第一次出现的位置。 说明:(返回字符串s1中第一个在s2中出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度。) strdup 原型:char *strdup(const char *s); 功能: 将串拷贝到新建的位置处 strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。 返回一个指针,指向为复制字符串分配的空间;如果分配空间失败,则返回NULL值。

linuxc字符串操作的基本使用

Linux C 字符串操作的基本使用 Linux C 字符串操作的基本使用 所属头文件:<string.h> 0、获取字符串长度:int strlen(char *s) int strlen(char *s)函数说明:此函数用于获取s的长度,不包括'\0'注:切记最好保证s的尾部是'\0',strlen函数读到'\0'会自动停止然后统计字符数 返回值:字符数1、查找指定的字符:index函数,rindex函数,strchr函数strrchr(其中index函数和strchr函数基本相同,rindex函数和strchr函数相同)(1)char *index(const char* s, char c) char *strchr(const char* s, char c) 函数说明:index函数用于查找字符串s中第一个出现c字符的地址,然后将该字符的地址返回.strchr函数与index相似返回值:若找到指定到字符则返回该字符的地址,否则返回0 举例: char s[] = "abcdeabcde"; char *sdest = NULL; sdest = index(s,'d'); printf("sdest: %s\n",sdest); 输出结果:sdest: deabcde

(2)char *rindex(const char* s, char c) char *strrchr(const char* s, char c) 函数说明:类似于index函数,但是他是从字符串开始查找字符c,并返回从字符串尾部开始第一个符合条件的字符的地址(strrchr与rindex相似) 返回值:同index一样 举例: char s[] = "abcdeabcde"; char *sdest = NULL; sdest = rindex(s,'d'); printf("sdest: %s\n",sdest); 输出结果:sdest: de2、查找满足条件字符串中任意一个字符:strpbrk函数char *strpbrk(const char *s, const char *accept) 函数说明:查找s字符串第一个符合accept字符串中任意一个字符的字符的地址 返回值:符合条件的字符的地址 举例: char s[] = "abcdefgefgbe"; char t[] = "omgf"; char *d = NULL;

C常用字符串函数

C常用字符串函数 平时对字符串的操作的是很多的,了解下常用的字符串函数会使c 编程变得很快捷!这里适当整理一下,方便以后参考。使用时,会用到大量指针的操作,注意加头文件: #include 一、str 系列 1.strtok extern char *strtok( char *s, const char *delim ); 功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。 说明:strtok()用来将字符串分割成一个个片段。当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回被分割出片段的指针。当没有被分割的串时则返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。 举例: /* strtok example */ #include #include int main (void) { char str[] = "- This, a sample string."; char *pch; printf("Splitting string \"%s\" into tokens:\n", str); pch = strtok(str," ,.-"); while (pch != NULL)

{ printf("%s\n", pch); pch = strtok(NULL, " ,.-"); } printf("at the end: %s", str); return0; } Splitting string"- This, a sample string." into tokens: This a sample string the end: - This 注:strtok函数会破坏被分解字符串的完整,调用前和调用后的s已经不一样了。另外貌似制表符\t 无法充当分割字符。 2.strstr char * strstr( const char * str1, const char * str2 ); 功能:从字符串str1 中寻找str2 第一次出现的位置(不比较结束符NULL),如果没找到则返回NULL。 举例: /* strstr example */ #include #include int main () { char str[] = "This is a s i mple string"; char *pch; pch = strstr(str, "s i mple"); strncpy(pch, "s a mple", 6); puts(pch);

C语言字符串处理的库函数

C语言字符串处理的库函数 使用C语言字符串处理的库函数,务必包含头文件string.h,即#include 1、比较字符串大小函数 ---strcasecmp 忽略大小写---strcasecmp 1)忽略大小写 函数原型:int strcasecmp(const char*s1,const char*s2); 函数说明:用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异 2)忽略大小写—stricmp 函数原型:int stricmp(char*str1,char*str2); 函数说明:以大小写不敏感方式比较两个串 3)不忽略大小写—strcmp 函数原型:int strcmp(char*str1,char*str2); 函数说明:通过比较字串中各个字符的ASCII码,来比较参数Str1和Str2字符串,比较时考虑字符的大小写。 4)比较一部分—strncmpi

函数原型:int strncmpi(char*str1,char*str2,unsigned maxlen); 函数说明:比较字符串str1和str2的前maxlen个字符 ---memcmp 5)内存区域比较 )内存区域比较---memcmp 函数原型:int memcmp(void*buf1,void*buf2,unsigned int count)函数说明:比较内存区域buf1和buf2的前count个字节。Void*是指任何类型的指针。 )内存区域部分比较----memicmp Void*是指任何类型的指针。 6)内存区域部分比较 函数原型:int memicmp(void*buf1,void*buf2,unsigned int count)函数说明:比较内存区域buf1和buf2的前count个字节,但不区分大小写。 以上比较函数的返回值:若参数1中字符串和参数中2字符串相同则返回0; 若参数1中字符串长度大于参数2中字符串长度则返回大于0的值; 若参数1中字符串长度小于参数2中

C_字符串处理:截取、替换、移除

C#字符串处理系列之——裁剪,替换,移除 问题1:我想删除字符串中指定的字符。 解答:技巧性的方法,用Replace()。 例如:string str = " how are you ! "。现在我们删除它中间的空格,则str = str.Replace(" ","")。懂了吧,把要删除的字符替换成""就OK了! 问题2:我想删除字符串开头和结尾的空格。 解答:用Trim()系列。Trim(char a)删除字符串开头和结尾的字符a,TrimEnd(char a)删除结尾的,TrimStart(char a )删除开头的。 若不指定a,即Trim(),TrimEnd(),TrimStart()则表示删除空格。 问题3:我想移除某段字符串。 解答:用Remove(int n1,int n2),其中n1指索引位置,n2指长度。 例如:string str = "how are you ! ",str1 = str.Remove(1,2),则str1 = "h are you ! "。 问题4:我想删除字符串中一系列的字符,难道要用一系列的Replace或者用一系列的Trim吗? 解答:1.如果要移除字符串开头或者结尾处的一系列字符,那么可以使用到ToCharArray (),因为 Trim()系列提供了两种方法,Trim(char a),Trim(char [])。 例如:string str = "how are you ! ",现在我想删除str开头和结尾的所有'h','!','u','a'那么我可以这样写 str1 = str.Trim("h!au".ToCharArray(),""); 2.如果要删除字串中一系列的字符,无论这些字符在开头,结尾,还是在中间,都一律删除,用个for循环就行了。 还是上例。我们这样写,string c = "h!ua"; for(int i =0;i

C语言字符串操作函数

strtok()—字符串分割函数 相关函数:index, memchr, rindex, strpbrk, strsep, strspn, strstr 头文件:#include 定义函数:char * strtok(char *s, const char *delim); 函数说明:strtok()用来将字符串分割成一个个片段. 参数s 指向欲分割的字符串, 参数delim 则为分割字符串,当strtok()在参数s 的字符串中发现到参数delim 的分割字符时则会将该字符改为\0 字符. 在第一次调用时,strtok()必需给予参数s 字符串, 往后的调用则将参数s 设置成NULL. 每次调用成功则返回下一个分割后的字符串指针. 返回值:返回下一个分割后的字符串指针, 如果已无从分割则返回NULL. 范例 #include main() { char s[] = "ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z"; char *delim = "-: "; char *p; printf("%s ", strtok(s, delim)); while((p = strtok(NULL, delim))) printf("%s ", p); printf("\n"); } 执行结果: ab cd ef;gh i jkl;mnop;qrs tu vwx y;z //-与:字符已经被\0 字符取代 strstr()—字符串查找函数 相关函数:index, memchr, rindex, strchr, strpbrk, strsep, strspn, strtok 头文件:#include 定义函数:char *strstr(const char *haystack, const char * needle); 函数说明:strstr()会从字符串haystack 中搜寻字符串needle, 并将第一次出现的地址返回. 返回值:返回指定字符串第一次出现的地址, 否则返回0.

C语言字符串函数大全

C语言字符串函数大全 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 函数名: strcat 功 能: 字符串拼接函数 函数名: strcmp 功 能: 串比较 函数名: strchr 功 能: 在一个串中查找给定字符的第一个匹配之处 函数名: strncmpi 功 能: 将一个串中的一部分与另一个串比较, 不管大小写 函数名: strcpy 功 能: 串拷贝 函数名: strcspn 功 能: 在串中查找第一个给定字符集内容的段 函数名: stricmp 功 能: 以大小写不敏感方式比较两个串 函数名: strerror 功 能: 返回指向错误信息字符串的指针 函数名: strcmpi 功 能: 将一个串与另一个比较, 不管大小写 函数名: strncmp 功 能: 串比较 int strncmp(char *str1, char *str2, int maxlen); 函数名: strncmpi 功 能: 把串中的一部分与另一串中的一部分比较, 不管大小写 函数名: strnset 功 能: 将一个串中的所有字符都设为指定字符 函数名: strrchr 功 能: 在串中查找指定字符的最后一个出现 函数名: strrev 功 能: 串倒转 用 法: char *strrev(char *str); 函数名: strspn 功 能: 在串中查找指定字符集的子集的第一次出现 函数名: strtol 功 能: 将串转换为长整数 函数名: strstr 功 能: 在串中查找指定字符串的第一次出现 函数名: strtod 功 能: 将字符串转换为double型值 函数名: strupr 功 能: 将串中的小写字母转换为大写字母 函数名: strtok 功 能: 查找由在第二个串中指定的分界符分隔开的单词 函数名: swab 功 能: 交换字节 -------------------------------------------------------------------------------------------- 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(string, str1); printf("%s\n", string); return 0; } --------------------------------------------------------------------------------- 函数名: strcat 功 能: 字符串拼接函数

C语言面试题——字符串函数

2016 C语言面试题——字符串函数strcat /********************************************************************** *** > File Name: strcat.c > Author: AnSwEr > Mail: 1045837697@https://www.360docs.net/doc/7b17060975.html, > Created Time: 2015年10月07日星期三20时08分29秒*********************************************************************** *//* * 连接字符串 */#includechar*my_strcat(char*dest,constchar *src) { char*temp = dest; constchar*s = src; while(*temp != '\0') temp++; while((*(temp++) = *(s++)) != '\0'); temp = '\0'; return dest; } int main(void) { char dest[] = "he"; constchar src[] = "llo"; printf("%s\n",my_strcat(dest,src)); return0; } strchr /********************************************************************** ***> File Name: strchr.c> Author: AnSwEr> Mail: 1045837697@https://www.360docs.net/doc/7b17060975.html,> Created Time: 2015年10月07日星期三19时55分12秒*********************************************************************** */ /* * 查找字符串中字符c第一次出现的位置*/ #include#includechar *my_strchr(const char *str,int c) { assert(str);const char *p = str;while(*p){if(*p == c){return p;}p++;}return NULL; } int main(void) { char str[] = "abcd";printf("%c\n",*my_strchr(str,'b'));return 0; } /* * strchr - Find the first occurrence of a character in a string * @s: The string to be searched * @c: The character to search for */ char *strchr(const char *s,int c) { for(;*s !=(char)c;++s) if(*s =='\0') return NULL; return (char *)s; }

相关文档
最新文档