字符串C++整理
作者:网络转载 发布时间:[ 2016/11/27 10:44:38 ] 推荐标签:C++ 字符串
	  平时对字符串的操作的是很多的,了解下常用的字符串函数会使 c 编程变得很快捷!这里适当整理一下,方便以后参考。使用时,会用到大量指针的操作,注意加头文件:
	  #include <string.h>
	  一、str 系列
	  1.strtok
	  extern char *strtok( char *s, const char *delim );
	  功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。
	  说明:strtok()用来将字符串分割成一个个片段。当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为  字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回被分割出片段的指针。当没有被分割的串时则返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
	  举例:
	  /* strtok example */
	  #include <stdio.h>
	  #include <string.h>
	  int main (void)
	  {
	  char str[] = "- This, a sample string.";
	  char *pch;
	  printf("Splitting string "%s" into tokens:
", str);
	  pch = strtok(str," ,.-");
	  while (pch != NULL)
	  {
	  printf("%s
", pch);
	  pch = strtok(NULL, " ,.-");
	  }
	  printf("at the end: %s", str);
	  return 0;
	  }
	  字符串C++整理
	  Splitting string "- This, a sample string." into tokens:
	  This
	  a
	  sample
	  string
	  the end: - This
	  注:strtok函数会破坏被分解字符串的完整,调用前和调用后的s已经不一样了。另外貌似制表符 	 无法充当分割字符。
	  2.strstr
	  char * strstr( const char * str1, const char * str2 );
	  功能:从字符串 str1 中寻找 str2 第一次出现的位置(不比较结束符NULL),如果没找到则返回NULL。
	  举例:
	  /* strstr example */
	  #include <stdio.h>
	  #include <string.h>
	  int main ()
	  {
	  char str[] = "This is a simple string";
	  char *pch;
	  pch = strstr(str, "simple");
	  strncpy(pch, "sample", 6);
	  puts(pch);
	  puts(str);
	  return 0;
	  }
	  sample string
	  This is a sample string
	  3.strchr
	  char * strchr ( const char *str, int ch );
	  功能:查找字符串 str 中首次出现字符 ch 的位置
	  说明:返回首次出现 ch 的位置的指针,如果 str 中不存在 ch 则返回NULL。
	  举例:
	  /* strchr example */
	  #include <stdio.h>
	  #include <string.h>
	  int main ()
	  {
	  char str[] = "This is a simple string";
	  char *pch;
	  printf("Looking for the 's' character in "%s"...
", str);
	  pch = strchr(str, 's');
	  while (pch != NULL){
	  printf("found at %d th
", pch - str + 1);
	  pch = strchr(pch + 1, 's');
	  }
	  return 0;
	  }
	  字符串C++整理
	  Looking for the 's' character in "This is a simple string"...
	  found at 4 th
	  found at 7 th
	  found at 11 th
	  found at 18 th
	  4.strcpy
	  char * strcpy( char * dest, const char * src );
	  功能:把 src 所指由NULL结束的字符串复制到 dest 所指的数组中。
	  说明:src 和 dest 所指内存区域不可以重叠且 dest 必须有足够的空间来容纳 src 的字符串。返回指向 dest 结尾处字符(NULL)的指针。
	  类似的:
	  strncpy
	  char * strncpy( char * dest, const char * src, size_t num );
	  stpcpy
	  非库函数,用法跟 strcpy 完全一样
	  5.strcat
	  char * strcat ( char * dest, const char * src );
	  功能:把 src 所指字符串添加到 dest 结尾处(覆盖dest结尾处的'')并添加''。
	  说明:src 和 dest 所指内存区域不可以重叠且 dest 必须有足够的空间来容纳 src 的字符串。
	  返回指向 dest 的指针。
	  类似的 strncat
	  char * strncat ( char * dest, const char * src, size_t num );
	  6.strcmp
	  int strcmp ( const char * str1, const char * str2 );
	  功能:比较字符串 str1 和 str2。
	  说明:
	  当s1<s2时,返回值<0
	  当s1=s2时,返回值=0
	  当s1>s2时,返回值>0
	  类似的:
	  strncmp
	  int strncmp ( const char * str1, const char * str2, size_t num );
	  strcasecmp
	  extern int strcasecmp(const char *str1, const char *str2);
	  strncasecmp
	  extern int strncasecmp(const char *str1, const char *str2, size_t num);
	  7.strcspn
	  size_t strcspn ( const char * str1, const char * str2 );
	  功能:在字符串 s1 中搜寻 s2 中所出现的任一个字符。
	  说明:返回出现 s2 中字符时已读入的字符数,亦即在 s1 中出现而 s2 中没有出现的子串的长度。
	  字符串C++整理
	  /* strcspn example */
	  #include <stdio.h>
	  #include <string.h>
	  int main ()
	  {
	  char str[] = "fcba73";
	  char keys[] = "1234567890";
	  int i = strcspn (str, keys);
	  printf ("Already read %d characters
", i);
	  printf ("The first number in both str and keys is %d th
", i + 1);
	  return 0;
	  }
	
 
					
 
			 
								 
								 
								 
								 
								 
								 
								 
								 
								 
								 
					 
				 sales@spasvo.com
sales@spasvo.com
