1. bcmp(比较内存内容)
  2. 相关函数
  3. bcmpstrcasecmpstrcmpstrcollstrncmpstrncasecmp
  4. 表头文件
  5. #include<string.h>
  6. 定义函数
  7. int bcmp ( const void *s1,const void * s2,int n);
  8. 函数说明
  9. bcmp()用来比较s1s2所指的内存区间前n个字节,若参数n0,则返回0
  10. 返回值
  11. 若参数s1 s2 所指的内存内容都完全相同则返回0 值,否则返回非零值。
  12. 附加说明
  13. 建议使用memcmp()取代。
  14. 范例
  15. 参考memcmp()。
  16.  
  17.  
  18. bcopy(拷贝内存内容)
  19. 相关函数
  20. memccpymemcpymemmovestrcpyctrncpy
  21. 表头文件
  22. #include <string.h>
  23. 定义函数
  24. void bcopy ( const void *src,void *dest ,int n);
  25. 函数说明
  26. bcopy()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址,不过参数srcdest在传给函数时是相反的位置。
  27. 返回值
  28.  
  29. 附加说明
  30. 建议使用memcpy()取代
  31. 范例
  32. #include<string.h>
  33. main()
  34. {
  35. ]=”string(a)”;
  36. ]=”string\0string”;
  37. int i;
  38. bcopy(src,dest,);/* src指针放在前*/
  39. printf(bcopy(): “)
  40. ;i<;i++)
  41. printf(“%c”,dest[i]);
  42. memcpy(dest src,); /*dest指针放在钱*/
  43. printf(‘\nmemcpy() : “);
  44. ;i<;i++)
  45. printf(“%c”,dest[i]);
  46. 执行
  47. bcopy() : string string
  48. memcpy() :string sring
  49.  
  50.  
  51. bzero(将一段内存内容全清为零)
  52. 相关函数
  53. memsetswab
  54. 表头文件
  55. #include<string.h>
  56. 定义函数
  57. void bzero(void *s,int n);
  58. 函数说明
  59. bzero()会将参数s所指的内存区域前n个字节,全部设为零值。相当于调用memset((,size_tn);
  60. 返回值
  61.  
  62. 附加说明
  63. 建议使用memset取代
  64. 范例
  65. 参考memset()。
  66.  
  67.  
  68. index(查找字符串中第一个出现的指定字符)
  69. 相关函数
  70. rindexsrechrstrrchr
  71. 表头文件
  72. #include<string.h>
  73. 定义函数
  74. char * index( const char *s, int c);
  75. 函数说明
  76. index()用来找出参数s字符串中第一个出现的参数c地址,然后将该字符出现的地址返回。字符串结束字符(NULL)也视为字符串一部分。
  77. 返回值
  78. 如果找到指定的字符则返回该字符所在地址,否则返回0
  79. 范例
  80. #include<string.h>
  81. main()
  82. {
  83. ”;
  84. char *p;
  85. p =index(s,’’);
  86. printf(%s\n”,p);
  87. }
  88. 执行
  89. 5.68E+25
  90.  
  91.  
  92. memccpy(拷贝内存内容)
  93. 相关函数
  94. bcopymemcpymemmovestrcpystrncpy
  95. 表头文件
  96. #include<string.h>
  97. 定义函数
  98. void * memccpy(void *dest, const void * src, int c,size_t n);
  99. 函数说明
  100. memccpy()用来拷贝src所指的内存内容前n个字节到dest所指的地址上。与memcpy()不同的是,memccpy()会在复制时检查参数c是否出现,若是则返回dest中值为c的下一个字节地址。
  101. 返回值
  102. 返回指向dest中值为c的下一个字节指针。返回值为0表示在src所指内存前n个字节中没有值为c的字节。
  103. 范例
  104. #include<string.h>
  105. main()
  106. {
  107. char a[]="string[a]";
  108. char b[]="string(b)";
  109. memccpy(a,b,'B',sizeof(b));
  110. printf("memccpy():%s\n",a);
  111. }
  112. 执行
  113. memccpy():string(b)
  114.  
  115.  
  116. memchr(在某一内存范围中查找一特定字符)
  117. 相关函数
  118. indexrindexstrchrstrpbrkstrrchrstrsepstrspnstrstr
  119. 表头文件
  120. #include<string.h>
  121. 定义函数
  122. void * memchr(const void *s,int c,size_t n);
  123. 函数说明
  124. memchr()从头开始搜寻s所指的内存内容前n个字节,直到发现第一个值为c的字节,则返回指向该字节的指针。
  125. 返回值
  126. 如果找到指定的字节则返回该字节的指针,否则返回0
  127. 范例
  128. #include <string.h>
  129. main()
  130. {
  131. ";
  132. char *p;
  133. p=memchr(s,);
  134. printf("%s\n",p);
  135. }
  136. 执行
  137. 5.68E+25
  138.  
  139.  
  140. memcmp(比较内存内容)
  141. 相关函数
  142. bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp
  143. 表头文件
  144. #include<string.h>
  145. 定义函数
  146. int memcmp (const void *s1,const void *s2,size_t n);
  147. 函数说明
  148. memcmp()用来比较s1和s2所指的内存区间前n个字符。字符串大小的比较是以ASCII码表上的顺序来决定,次顺序亦为字符的值。memcmp ()首先将s1第一个字符值减去s2第一个字符的值,若差为0则再继续比较下个字符,若差值不为0则将差值返回。例如,字符串)和)的差值(-)。
  149. 返回值
  150. 若参数s1和s2所指的内存内容都完全相同则返回0值。s1若大于s2则返回大于0的值。s1若小于s2则返回小于0的值。
  151. 范例
  152. #include<string.h>
  153. main()
  154. {
  155. char *a ="aBcDeF";
  156. char *b="AbCdEf";
  157. char *c="aacdef";
  158. char *d="aBcDeF";
  159. printf());
  160. printf());
  161. printf());
  162. 执行
  163. memcmp(a,b): /*字符串a>字符串b,返回1*/
  164. memcmp(a,c):- /* 字符串a<字符串c,返回-1*/
  165. memcmp(a,d): /*字符串a=字符串d,返回0*/
  166.  
  167.  
  168. memcpy(拷贝内存内容)
  169. 相关函数
  170. bcopy,memccpy,memcpy,memmove,strcpy,strncpy
  171. 表头文件
  172. #include<string.h>
  173. 定义函数
  174. void * memcpy (void * dest ,const void *src, size_t n);
  175. 函数说明
  176. memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束。
  177. 返回值
  178. 返回指向dest的指针。
  179. 附加说明
  180. 指针src和dest所指的内存区域不可重叠。
  181. 范例
  182. #include<string.h>
  183. main()
  184. {
  185. ]="string (a)";
  186. ]="string\0string";
  187. int i;
  188. strcpy(a,b);
  189. printf("strcpy():");
  190. ;i<;i++)
  191. printf("%c",a[i]);
  192. memcpy(a,b,);
  193. printf("\nmemcpy() :");
  194. ;i<;i++)
  195. printf("%c",a[i]);
  196. }
  197. 执行
  198. strcpy() : string a )
  199. memcpy() : string string
  200.  
  201.  
  202. memmove(拷贝内存内容)
  203. 相关函数
  204. bcopy,memccpy,memcpy,strcpy,strncpy
  205. 表头文件
  206. #include<string.h>
  207. 定义函数
  208. void * memmove(void *dest,const void *src,size_t n);
  209. 函数说明
  210. memmove()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址上。不同的是,当src和dest所指的内存区域重叠时,memmove()仍然可以正确的处理,不过执行效率上会比使用memcpy()略慢些。
  211. 返回值
  212. 返回指向dest的指针。
  213. 附加说明
  214. 指针src和dest所指的内存区域可以重叠。
  215. 范例
  216. 参考memcpy()。
  217.  
  218.  
  219. memset(将一段内存空间填入某值)
  220. 相关函数
  221. bzero,swab
  222. 表头文件
  223. #include<string.h>
  224. 定义函数
  225. void * memset (void *s ,int c, size_t n);
  226. 函数说明
  227. memset()会将参数s所指的内存区域前n个字节以参数c填入,然后返回指向s的指针。在编写程序时,若需要将某一数组作初始化,memset()会相当方便。
  228. 返回值
  229. 返回指向s的指针。
  230. 附加说明
  231. 参数c虽声明为int, 但必须是unsigned char ,所以范围在0到255之间。
  232. 范例
  233. #include <string.h>
  234. main()
  235. {
  236. ];
  237. memset (s,'A',sizeof(s));
  238. s[]='\0';
  239. printf("%s\n",s);
  240. }
  241. 执行
  242. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  243.  
  244.  
  245. rindex(查找字符串中最后一个出现的指定字符)
  246. 相关函数
  247. index,memchr,strchr,strrchr
  248. 表头文件
  249. #include<string.h>
  250. 定义函数
  251. char * rindex( const char *s,int c);
  252. 函数说明
  253. rindex()用来找出参数s字符串中最后一个出现的参数c地址,然后将该字符出现的地址返回。字符串结束字符(NULL)也视为字符串一部分。
  254. 返回值
  255. 如果找到指定的字符则返回该字符所在的地址,否则返回0。
  256. 范例
  257. #include <string.h>
  258. mian()
  259. {
  260. ";
  261. char *p;
  262. p=rindex(s,');
  263. printf("%s\n",p);
  264. }
  265. 执行
  266.  
  267.  
  268.  
  269. strcasecmp(忽略大小写比较字符串)
  270. 相关函数
  271. bcmp,memcmp,strcmp,strcoll,strncmp
  272. 表头文件
  273. #include<string.h>
  274. 定义函数
  275. int strcasecmp (const char *s1, const char *s2);
  276. 函数说明
  277. strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。
  278. 返回值
  279. 若参数s1和s2字符串相同则返回0。s1长度大于s2长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0的值。
  280. 范例
  281. #include <string.h>
  282. main()
  283. {
  284. char *a="aBcDeF";
  285. char *b="AbCdEf";
  286. if(!strcasecmp(a,b))
  287. printf("%s=%s\n",a,b);
  288. }
  289. 执行
  290. aBcDeF=AbCdEf
  291.  
  292.  
  293. strcat(连接两字符串)
  294. 相关函数
  295. bcopy,memccpy,memcpy,strcpy,strncpy
  296. 表头文件
  297. #include <string.h>
  298. 定义函数
  299. char *strcat (char *dest,const char *src);
  300. 函数说明
  301. strcat()会将参数src字符串拷贝到参数dest所指的字符串尾。第一个参数dest要有足够的空间来容纳要拷贝的字符串。
  302. 返回值
  303. 返回参数dest的字符串起始地址
  304. 范例
  305. #include <string.h.>
  306. main()
  307. {
  308. ]="string(1)";
  309. char b[]="string(2)";
  310. printf("before strcat() : %s\n",a);
  311. printf("after strcat() : %s\n",strcat(a,b));
  312. }
  313. 执行
  314. before strcat () : )
  315. after strcat () : ))
  316.  
  317.  
  318. strchr(查找字符串中第一个出现的指定字符)
  319. 相关函数
  320. index,memchr,rinex,strbrk,strsep,strspn,strstr,strtok
  321. 表头文件
  322. #include<string.h>
  323. 定义函数
  324. char * strchr (const char *s,int c);
  325. 函数说明
  326. strchr()用来找出参数s字符串中第一个出现的参数c地址,然后将该字符出现的地址返回。
  327. 返回值
  328. 如果找到指定的字符则返回该字符所在地址,否则返回0。
  329. 范例
  330. #include<string.h>
  331. main()
  332. {
  333. ”;
  334. char *p;
  335. p=strchr(s,');
  336. printf("%s\n",p);
  337. }
  338. 执行
  339. 5.68E+25
  340.  
  341.  
  342. strcmp(比较字符串)
  343. 相关函数
  344. bcmpmemcmpstrcasecmpstrncasecmpstrcoll
  345. 表头文件
  346. #include<string.h>
  347. 定义函数
  348. int strcmp(const char *s1,const char *s2);
  349. 函数说明
  350. strcmp()用来比较参数s1s2字符串。字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1第一个字符值减去s2第一个字符值,若差值为0则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串)和)的差值(-)。
  351. 返回值
  352. 若参数s1s2字符串相同则返回0s1若大于s2则返回大于0的值。s1若小于s2则返回小于0 的值。
  353. 范例
  354. #include<string.h>
  355. main()
  356. {
  357. char *a="aBcDeF";
  358. char *b="AbCdEf";
  359. char *c="aacdef";
  360. char *d="aBcDeF";
  361. printf("strcmp(a,b) : %d\n",strcmp(a,b));
  362. printf("strcmp(a,c) : %d\n",strcmp(a,c));
  363. printf("strcmp(a,d) : %d\n",strcmp(a,d));
  364. }
  365. 执行
  366. strcmp(a,b) :
  367. strcmp(a,c) :-
  368. strcmp(a,d) :
  369.  
  370.  
  371. strcoll(采用目前区域的字符排列次序来比较字符串)
  372. 相关函数
  373. strcmpbcmpmemcmpstrcasecmpstrncasecmp
  374. 表头文件
  375. #include<string.h>
  376. 定义函数
  377. int strcoll( const char *s1, const char *s2);
  378. 函数说明
  379. strcoll()会依环境变量LC_COLLATE所指定的文字排列次序来比较s1s2 字符串。
  380. 返回值
  381. 若参数s1s2字符串相同则返回0s1若大于s2则返回大于0的值。s1若小于s2则返回小于0 的值。
  382. 附加说明
  383. LC_COLLATE"POSIX""C",则strcoll()与strcmp()作用完全相同。
  384. 范例
  385. 参考strcmp()。
  386.  
  387.  
  388. strcpy(拷贝字符串)
  389. 相关函数
  390. bcopymemcpymemccpymemmove
  391. 表头文件
  392. #include<string.h>
  393. 定义函数
  394. char *strcpy(char *dest,const char *src);
  395. 函数说明
  396. strcpy()会将参数src字符串拷贝至参数dest所指的地址。
  397. 返回值
  398. 返回参数dest的字符串起始地址。
  399. 附加说明
  400. 如果参数dest所指的内存空间不够大,可能会造成缓冲溢出(buffer Overflow)的错误情况,在编写程序时请特别留意,或者用strncpy()来取代。
  401. 范例
  402. #include<string.h>
  403. main()
  404. {
  405. ]="string(1)";
  406. char b[]="string(2)";
  407. printf("before strcpy() :%s\n",a);
  408. printf("after strcpy() :%s\n",strcpy(a,b));
  409. }
  410. 执行
  411. before strcpy() :)
  412. after strcpy() :)
  413.  
  414.  
  415. strcspn(返回字符串中连续不含指定字符串内容的字符数)
  416. 相关函数
  417. strspn
  418. 表头文件
  419. #inclued<string.h>
  420. 定义函数
  421. size_t strcspn ( const char *s,const char * reject);
  422. 函数说明
  423. strcspn()从参数s字符串的开头计算连续的字符,而这些字符都完全不在参数reject 所指的字符串中。简单地说,若strcspn()返回的数值为n,则代表字符串s开头连续有n个字符都不含字符串reject内的字符。
  424. 返回值
  425. 返回字符串s开头连续不含字符串reject内的字符数目。
  426. 范例
  427. #include <string.h>
  428. main()
  429. {
  430. char *str="Linux was first developed for 386/486-based pcs.";
  431. printf("%d\n",strcspn(str," "));
  432. printf("%d\n",strcspn(str,"/-"));
  433. printf("));
  434. }
  435. 执行
  436. /*只计算到“ ”的出现,所以返回“Linux”的长度*/
  437. /*计算到出现“/”或“-”,所以返回到“6”的长度*/
  438. /* 计算到出现数字字符为止,所以返回“3”出现前的长度*/
  439.  
  440.  
  441. strdup(复制字符串)
  442. 相关函数
  443. calloc,malloc,realloc,free
  444. 表头文件
  445. #include<string.h>
  446. 定义函数
  447. char * strdup( const char *s);
  448. 函数说明
  449. strdup()会先用maolloc()配置与参数s字符串相同的空间大小,然后将参数s字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。
  450. 返回值
  451. 返回一字符串指针,该指针指向复制后的新字符串地址。若返回NULL表示内存不足。
  452. 范例
  453. #include<string.h>
  454. main()
  455. {
  456. char a[]="strdup";
  457. char *b;
  458. b=strdup(a);
  459. printf("b[ ]=\"%s\"\n",b);
  460. }
  461. 执行
  462. b[ ]="strdup"
  463.  
  464.  
  465. strlen(返回字符串长度)
  466. 相关函数
  467.  
  468. 表头文件
  469. #include<string.h>
  470. 定义函数
  471. size_t strlen (const char *s);
  472. 函数说明
  473. strlen()用来计算指定的字符串s的长度,不包括结束字符"\0"。
  474. 返回值
  475. 返回字符串s的字符数。
  476. 范例
  477. /*取得字符串str的长度*/
  478. #include<string.h>
  479. main()
  480. {
  481. ";
  482. printf("str length = %d\n", strlen(str));
  483. }
  484. 执行
  485. str length =
  486.  
  487.  
  488. strncasecmp(忽略大小写比较字符串)
  489. 相关函数
  490. bcmpmemcmpstrcmpstrcollstrncmp
  491. 表头文件
  492. #include<string.h>
  493. 定义函数
  494. int strncasecmp(const char *s1,const char *s2,size_t n);
  495. 函数说明
  496. strncasecmp()用来比较参数s1s2字符串前n个字符,比较时会自动忽略大小写的差异。
  497. 返回值
  498. 若参数s1s2 字符串相同则返回0s1 若大于s2则返回大于0的值,s1若小于s2则返回小于0 的值。
  499. 范例
  500. #include<string.h>
  501. main()
  502. {
  503. char *a="aBcDeF";
  504. char *b="AbCdEf";
  505. if(!strncasecmp(a,b))
  506. printf("%s =%s\n",a,b);
  507. }
  508. 执行
  509. aBcDef=AbCdEf
  510.  
  511.  
  512. strncat(连接两字符串)
  513. 相关函数
  514. bcopymemccpymemecpystrcpystrncpy
  515. 表头文件
  516. #inclue <string.h>
  517. 定义函数
  518. char * strncat(char *dest,const char *src,size_t n);
  519. 函数说明
  520. strncat()会将参数src字符串拷贝n个字符到参数dest所指的字符串尾。第一个参数dest要有足够的空间来容纳要拷贝的字符串。
  521. 返回值
  522. 返回参数dest的字符串起始地址。
  523. 范例
  524. #include <string.h>
  525. main()
  526. {
  527. ]="string(1)";
  528. char b[]="string(2)";
  529. printf("before strnact() :%s\n", a);
  530. printf());
  531. }
  532. 执行
  533. before strnact() : )
  534. after strncat() : ) string
  535.  
  536.  
  537. strncpy(拷贝字符串)
  538. 相关函数
  539. bcopymemccpymemcpymemmove
  540. 表头文件
  541. #include<string.h>
  542. 定义函数
  543. char * strncpy(char *dest,const char *src,size_t n);
  544. 函数说明
  545. strncpy()会将参数src字符串拷贝前n个字符至参数dest所指的地址。
  546. 返回值
  547. 返回参数dest的字符串起始地址。
  548. 范例
  549. #inclue <string.h>
  550. main()
  551. {
  552. ]="string(1)";
  553. char b[]="string(2)";
  554. printf("before strncpy() : %s\n",a);
  555. printf());
  556. }
  557. 执行
  558. before strncpy() : )
  559. after strncpy() : )
  560.  
  561.  
  562. strpbrk(查找字符串中第一个出现的指定字符)
  563. 相关函数
  564. indexmemchrrindexstrpbrkstrsepstrspnstrstrstrtok
  565. 表头文件
  566. #include <include.h>
  567. 定义函数
  568. char *strpbrk(const char *s,const char *accept);
  569. 函数说明
  570. strpbrk()用来找出参数s 字符串中最先出现存在参数accept 字符串中的任意字符。
  571. 返回值
  572. 如果找到指定的字符则返回该字符所在地址,否则返回0
  573. 范例
  574. #include <string.h>
  575. main()
  576. {
  577. ";
  578. char *p;
  579. p=strpbrk(s,"a1 839"); /*1会最先在s字符串中找到*/
  580. printf("%s\n",p);
  581. p=strprk(s,");/*3 会最先在s 字符串中找到*/
  582. printf("%s\n",p);
  583. 执行
  584. 1.23E+29
  585.  
  586.  
  587. strrchr(查找字符串中最后出现的指定字符)
  588. 相关函数
  589. indexmemchrrindexstrpbrkstrsepstrspnstrstrstrtok
  590. 表头文件
  591. #include<string.h>
  592. 定义函数
  593. char * strrchr(const char *s, int c);
  594. 函数说明
  595. strrchr()用来找出参数s字符串中最后一个出现的参数c地址,然后将该字符出现的地址返回。
  596. 返回值
  597. 如果找到指定的字符则返回该字符所在地址,否则返回0
  598. 范例
  599. #include<string.h>
  600. main()
  601. {
  602. ";
  603. char *p;
  604. p=strrchr(s,');
  605. printf("%s\n",p);
  606. }
  607. 执行
  608.  
  609.  
  610.  
  611. strspn(返回字符串中连续不含指定字符串内容的字符数)
  612. 相关函数
  613. strcspn,strchr,strpbrk,strsep,strstr
  614. 表头文件
  615. #include<string.h>
  616. 定义函数
  617. size_t strspn (const char *s,const char * accept);
  618. 函数说明
  619. strspn()从参数s 字符串的开头计算连续的字符,而这些字符都完全是accept 所指字符串中的字符。简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都是属于字符串accept内的字符。
  620. 返回值
  621. 返回字符串s开头连续包含字符串accept内的字符数目。
  622. 范例
  623. #include<string.h>
  624. main()
  625. {
  626. char *str="Linux was first developed for 386/486-based PCs.";
  627. char *t1="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  628. printf("%d\n",strspn(str,t1));
  629. }
  630. 执行
  631. /*计算大小写字母。不包含“ ”,所以返回Linux的长度。*/
  632.  
  633.  
  634. strstr(在一字符串中查找指定的字符串)
  635. 相关函数
  636. index,memchr,rindex,strchr,strpbrk,strsep,strspn,strtok
  637. 表头文件
  638. #include<string.h>
  639. 定义函数
  640. char *strstr(const char *haystack,const char *needle);
  641. 函数说明
  642. strstr()会从字符串haystack 中搜寻字符串needle,并将第一次出现的地址返回。
  643. 返回值
  644. 返回指定字符串第一次出现的地址,否则返回0。
  645. 范例
  646. #include<string.h>
  647. main()
  648. {
  649. ";
  650. char *p;
  651. p= strstr(s,");
  652. printf("%s\n",p);
  653. }
  654. 执行
  655. 9.01E+21
  656.  
  657.  
  658. strtok(分割字符串)
  659. 相关函数
  660. index,memchr,rindex,strpbrk,strsep,strspn,strstr
  661. 表头文件
  662. #include<string.h>
  663. 定义函数
  664. char * strtok(char *s,const char *delim);
  665. 函数说明
  666. strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\ 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回下一个分割后的字符串指针。
  667. 返回值
  668. 返回下一个分割后的字符串指针,如果已无从分割则返回NULL。
  669. 范例
  670. #include<string.h>
  671. main()
  672. {
  673. char s[]="ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
  674. char *delim="-: ";
  675. char *p;
  676. printf("%s ";strtok(s,delim));
  677. while((p=strtok(NULL,delim)))printf("%s ",p);
  678. printf("\n");
  679. }
  680. 执行
  681. ab cd ef;gh i jkl;mnop;qrs tu vwx y;z /*-与:字符已经被\0 字符取代*/

内存及字符串操作篇strlen strchar strcmp strcoll strcpy strdup strstr strtok strspn strrchr bcmp bcopy bzero index memccpy memset的更多相关文章

  1. 自己实现字符串操作函数strlen(),strcat(),strcpy(),strcmp()

    1.strlen()函数是求解字符串的有效长度的 1)非递归实现 size_t my_strlen(const char *str) { assert(str != NULL);  //断言,保证指针 ...

  2. (基础篇)PHP字符串操作

    PHP是弱类型语言,所以其它类型的数据一般可以直接应用于字符串操作函数里,而自动转换成字符串类型,进行处理,如: echo substr("1234567", 1, 3);  和 ...

  3. 【超值分享】为何写服务器程序需要自己管理内存,从改造std::string字符串操作说起。。。

    服务器程序为何要进行内存管理,管中窥豹,让我们从string字符串的操作说起...... new/delete是用于c++中的动态内存管理函数,而malloc/free在c++和c中都可以使用,本质上 ...

  4. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  5. 字符串 前篇 ---- sizeof()操作符和strlen()库函数

    本文不是研究sizeof(), strlen() 的深奥定义和原理,我们不会在理论上太过钻牛角尖.希望读这篇文章的你,也不要太过抠概念(不要拘泥于语法).我们只做 实用意义 的介绍和讨论. 在介绍字符 ...

  6. 归纳整理Linux下C语言常用的库函数----内存及字符串控制及操作

    在没有IDE的时候,记住一些常用的库函数的函数名.参数.基本用法及注意事项是很有必要的. 参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类: 1. 内存及字符串控制及操作 2. ...

  7. C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...

  8. 【C/C++】C语言嵌入式编程修炼·背景篇·软件架构篇·内存操作篇

    C 语言嵌入式系统编程修炼之一:背景篇 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力.无疑,汇编语言具备这样的特质.但是,归因于汇编语言 ...

  9. 实现字符串函数,strlen(),strcpy(),strcmp(),strcat()

    实现字符串函数,strlen(),strcpy(),strcmp(),strcat() #include<stdio.h> #include<stdlib.h> int my_ ...

随机推荐

  1. 【LOJ】#2244. 「NOI2014」起床困难综合症

    题解 写水题放松一下心情 二进制有个很好的性质是每一位是独立的,我们按位贪心,先看这一位能不能填1,然后看看如果这一位填0那么运算后最后这一位是不是1,是的话就退出,然后看看这一位如果填1最后是1这一 ...

  2. 微信JS-SDK之图像接口开发详解

    由于现在手头的项目中有一个上传证件照认证的功能(手机端),之前的思路是直接点击上传,然后直接将图片上传到服务器去,这篇文章有讲到(http://www.cnblogs.com/it-cen/p/453 ...

  3. 深度学习基础系列(九)| Dropout VS Batch Normalization? 是时候放弃Dropout了

    Dropout是过去几年非常流行的正则化技术,可有效防止过拟合的发生.但从深度学习的发展趋势看,Batch Normalizaton(简称BN)正在逐步取代Dropout技术,特别是在卷积层.本文将首 ...

  4. javascript中switch的用法注意

    switch中文翻译过来是转换.切换的意思.用在js中,各个条件转换而执行不同代码.

  5. Alpha 冲刺报告5

    组长:吴晓晖 今天完成了哪些任务: 将服务端程序基本部署在阿里云上,还未进行测试 完成了手写记录的代码实现 处理团队问题 为明天的编程任务做准备 展示GitHub当日代码/文档签入记录: 明日计划: ...

  6. BZOJ 1022 [SHOI2008]小约翰的游戏John AntiNim游戏

    1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1475  Solved: 932[Submit][ ...

  7. opencv 支持向量机SVM分类器

    支持向量机SVM是从线性可分情况下的最优分类面提出的.所谓最优分类,就是要求分类线不但能够将两类无错误的分开,而且两类之间的分类间隔最大,前者是保证经验风险最小(为0),而通过后面的讨论我们看到,使分 ...

  8. grep查看源代码用法

    http://blog.csdn.net/guyongqiangx/article/details/70161189

  9. Error : The specified component was not reported by the VSS writer (Error 517) in Windows Server 2012 Backup

    Error : The specified component was not reported by the VSS writer (Error 517) in Windows Server 201 ...

  10. Qt移动应用开发(三):使用精灵图片实现帧动画

    Qt移动应用开发(三):使用精灵图片实现帧动画 上一篇博文讲到了Qt Quick对于动画的一般支持.动画的形式多样,配合不同的插值函数,能够差点儿实现全部想要的动画效果,而对于游戏的一些特殊的效果比方 ...