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)。

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