C语言 之 字符串(数组)

C语言字符串数组
 截取数组原素方式:
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
void main(){
	char a[] = "i think u a superman";
	char *p = a;
	*(p + 7) ='\0';
	printf("%p\n", p + 2);
	printf("%s",p+2);
	Sleep(55555555);
	return;
}

  学习字符串,首先要了解到字符串的构成原理是是什么:一个个字符末尾加\0串在一起的字符串,那么就不难理解字符串在内存中的保存方式是一连串的存储区域(数组),内存中保存的是字符对应的ASCII码。
  要特别注意的空格的ASCII码是32,还有就是定义一个字符数组时,末尾要加入'\0'字符:char ch[50] = {'i','','l','o','v','e','','u','\0'};不然打印时,会一直找下去直到找到一个\0,这样就容易打印出垃圾数据。对于字符串的打印,又有一个新的注意事项:char *p = "i love u";
打印可以写成printf("%s",p);  //有些人可能就要问了,这不是地址吗,对于这个问题可以上网查查,这是C++的一个机制,在这个数组首地址上可以直接打印这个数组,也是字符串数组的特殊之处。其他地方与普通数组是一样的运行机制。用二位数组装字符串时,一般都选择二维数组的整行,另外就是地址不能直接赋值,因为数组名是地址常量,而指针可以赋值是因为指针式地址变量。
  字符串的一些操作:
  strupr(字符串); 字符串全部转大写
  strcat(p,p1)    p1字符串附在p2后
  strcpy(p, p1) 复制字符串
  strncpy(p, p1, n) 复制指定长度字符串  
  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) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移 
* 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符 
  下面几个字符串操作例子:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main(){	
	char ch[100];
	char ab[100];
	printf("请输入一个字符串:");
	scanf("%s",ch);
	strcpy(ab, ch); 


    <span style="white-space:pre">	</span>    <pre name="code" class="cpp">#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main(){
	char ch1[20] = "X";
	char ch2[20] = "A";
	printf("%d\n",strcmp(ch1,ch2)); 	  //字符串比较是否相等	
	system("pause");
	return;
}

//复制字符串printf("11111\n%s",ab);system("pause");return;}

  
原型:strlen( const char string[] ); 
功能:统计字符串string中字符的个数 
例程:  

#include <iostream.h> 
#include <string.h> 
void main(void) 
{ 
  char str[100];  
  cout <<"请输入一个字符串:"; 
  cin >>str; 
  cout <<"The length of the string is :"<<strlen(str)<<"个"<<endl; 
} 

运行结果The length of the string is x (x为你输入的字符总数字) 

注意:strlen函数的功能是计算字符串的实际长度,不包括'\0'在内。另外,strlen函数也可以直接测试字符串常量的长度,如:strlen("Welcome")。
上面都是字符串的基本操作,字符串的截取也与其他数组的截取方式相同,可以先定义一个指针预先指针第几个元素,后面+到某元素逐一打印出来也是可以的("%s",ch)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章