String C語言-字串.

Slides:



Advertisements
Similar presentations
資料坐火車 …… 談陣列 (Array) 綠園 2008/12/15. Array 的宣告 整數陣列的宣告  int student[5]; 意義:宣告了 5 個 int 大小的連續空間,名稱 為 student ,沒有預設值,則為系統殘值。 student student[0] student[1]
Advertisements

綠園 2012/11/06. Array 的宣告 整數陣列的宣告 int student[5]; 意義:宣告了 5 個 int 大小的連續空間,名稱 為 student ,沒有預設值,則為系統殘值。 student student[0] student[1] student[4] student[2]
第一單元 建立java 程式.
电子成绩单项目实现.
第九章 字串 (String).
補充: Input from a text file
File Access 井民全製作.
第六讲 指针与字符串 —— 为什么指针 —— 持久动态内存分配 —— 字符串(字符数组).
第六章 数 组 主讲教师 贾月乐 联系电话:
C 程式設計— 字元與字串 台大資訊工程學系 資訊系統訓練班.
Visual C++ introduction
函數 授課:ANT 日期:2009/3/24.
第8章 字元與字串處理 8-1 C語言的字元檢查函數 8-2 指定字串的初值 8-3 指標與字串 8-4 字串處理 8-5 C語言的字串函數.
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
列舉(enum).
程序设计II 第三讲 字符串处理.
函數 授課:ANT 日期:2011/3/28.
Introduction to the C Programming Language
Introduction to the C Programming Language
目录 第八章 数组 1 简单学生成绩管理系统的开发 2 一维数组 3 多维数组 4 字符数组 5 数组作函数参数.
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
Introduction to the C Programming Language
C語言簡介 日期 : 2018/12/2.
Chap 8 指针 8.1 寻找保险箱密码 8.2 角色互换 8.3 冒泡排序 8.4 电码加密 8.5 任意个整数求和*
Introduction to the C Programming Language
Introduction to the C Programming Language
第3章 指標與字串 (Pointers and Strings)
字符串和字符数组 字符串的输入和输出 字符串的基本操作
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
Introduction to the C Programming Language
第十章 指针.
程式設計實習課(四) ----C 函數運用----
第一單元 建立java 程式.
Chapter 5 複合資料型態.
数组 梁春燕 华电信息管理教研室.
C++大学基础教程 第5章 数组 北京科技大学 信息基础科学系.
輸入&輸出 函數 P20~P21.
第九章 字串.
深度學習C++ Chapter 7 簡易字串 深度學習 C++ 簡易字串.
C语言复习3----指针.
C语言大学实用教程 第6章 数组 西南财经大学经济信息工程学院 刘家芬
挑戰C++程式語言 ──第8章 進一步談字元與字串
函式庫補充資料.
C语言的特点 1. C程序由许多函数组成 2. C程序必须有且只有一个主函数main( ) 3. 函数用“{”和“}”表示起点和终点
C qsort.
C程序设计.
第4章 数 组.
第二章 类型、对象、运算符和表达式.
挑戰C++程式語言 ──第7章 輸入與輸出.
陣列與結構.
挑戰C++程式語言 ──第9章 函數.
Introduction to the C Programming Language
本节内容 C语言中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C/C++基礎程式設計班 字元與字串 講師:林業峻 CSIE, NTU 3/14, 2015.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
Oop7 字串 String.
Introduction to the C Programming Language
Introduction to the C Programming Language
Programming & Language Telling the computer what to do
C 程式設計— 字元與字串 台大資訊工程學系 資訊系統訓練班.
字串 第10章 part I 8/30/2019.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
變數與資料型態  綠園.
資料!你家住哪裏? --談指標 綠園.
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
台大資訊工程學系 資料系統訓練班 第119期 吳晉賢
Introduction to the C Programming Language
隨機函數.
InputStreamReader Console Scanner
Presentation transcript:

String C語言-字串

字串(String) 字串是一個結構性的資料型態,它的實施方式有兩種,一種是使用字元陣列,另一種是使用指標. 字串的結構與一維的字元陣列是一樣的,兩者的差別在於字串是以空字元'\0'結束. 字串以空字元'\0'來當作字串的結束值,它是函數處理字串所認定字串結尾的唯一方法.

字串的宣告 字元陣列方式 指標方式 char 字串變數名稱[字元個數]; char 字串變數名稱[字元個數]="字串常數"; char s2[13]; /* 宣告字串變數 s2 ,最多13個字元(包含空字元)*/ char 字串變數名稱[字元個數]="字串常數"; char s2[13]=“I like C.”; /*宣告字串變數 s2 ,不指定長度 ,初值為字串常數“I like C.” */ 指標方式 char *字串指標變數名稱; char *s2; /* 宣告字串指標變數 s2*/ char *字串指標變數名稱="字串常數"; char *s2=“I like C.”; /*宣告字串指標變數 s2,初值為字串常數“I like C.” */ I l i k e C . \0 I l i k e C . \0

範例1-印出字元及字串的長度 #include <stdio.h> int main(void) { char a[]="My friend"; char b='c'; char str[]="c"; printf("sizeof(a)=%d\n",sizeof(a)); printf("sizeof(b)=%d\n",sizeof(b)); printf("sizeof(str)=%d\n",sizeof(str)); system("pause"); return 0; }

範例2-以字元陣列及字元指標變數表示字串 #include<stdio.h> int main( ) { int i; char s1[13]; char s2[13]="I like C."; char *s3; char *s4="Thank you!"; printf("s2=%s\n",s2); printf("s4=%s\n",s4); /*印出字串指標變數s4所指的字串*/ for(i=0;i<13;i++) s1[i]=s2[i]; /*將s2 copy至s1*/ printf("s2=s1,then s1=%s\n",s1); s3=s4; printf("s3=s4,then s3=%s\n",s3); /*印出印出字串指標變數s3所指的字串*/ s3=s2; printf("s3=s2,then s3=%s\n",s3); printf("The 3nd character of s4 is '%c'. \n ",*(s4+2)); system("pause"); return 0; }

範例3-字串資料的輸入與輸出 #include<stdio.h> int main( ) { char *s1="I love C"; char temp[20]; char *s2=&temp[0]; char s3[20]; char s4[]="I like C"; printf("The s1 are:%s\n",s1); printf("The s2 are:"); gets(s2); puts(s2); printf("Enter s3 string: "); scanf("%s",&s3); printf("The s3 are:%s\n",s3); printf("The s4 are:%s\n",s4); system("pause"); return 0; }

範例4-字串參數以call by address傳遞 #include<stdio.h> void change(char *); int main( ) { char s[ ]="abcdefg"; char temp[ ]="ijklmnop"; char *t=&temp[0]; change(&s[0]); change(t); puts(s); puts(t); system("pause"); return 0; } void change(char *x) *(x+2)='$'; *(x+5)='+'; s a b c d e f g \0 $ + t i j k l m n o p \0 $ +

字串常用的String Library Function C語言提供很多字串庫存函數,這些都存在string.h標頭檔裡 名稱 寫法 用途 strcat ( ) strcat(str1,str2) 將str2串接在str1之後 strncat ( ) strncat(str1,str2,n) 將str2的前面n個字元,串接在str1之後 strcpy ( ) strcpy(str1,str2) 將一個str2 複製到另一str1中 strncpy strncpy(str1,str2,n) 將str2前面 n個字元複製至str1字串 strcmp( ) strcmp(str1,str2) 將str1和str2由左至右依序比較其字元(根據ASCII值), 傳回一個函數值: 函數值<0str1<str2 函數值=0str1=str2 函數值>0str1>str2 strlen( ) strlen(str1) 傳回str1的長度(含空白字元,但不含結束字元\0) strchr( ) strchr(str1,ch) 根據字元的ASCII值,與str1比對,若無相同的ASCII值,則傳回空指標;若比對相同,則將初次出現的位址傳回 strstr( ) strstr(str1,str2) 從str2開始與str1比對,若無一樣的子字串,則傳回空指標;若一樣,則傳回str1比對一樣的位址 補充:strrev() 倒印

範例5-strcat() #include<stdio.h> #include<string.h> int main( ) { int i; char s1[40]="abcde"; char s2[40]="fghijk"; strcat(s1,s2); printf("The new string are=%s\n",s1); system("pause"); return 0; } s1 a b c d e \0 s2 f g h i j k \0 s1 a b c d e f g h i j k \0

範例6-strncat() #include<stdio.h> #include<string.h> int main( ) { int i; char s1[40]="abcde"; char s2[40]="fghijk"; strncat(s1,s2,3); printf("The new string are=%s\n",s1); system("pause"); return 0; } s1 a b c d e \0 s2 f g h i j k \0 s1 a b c d e f g h \0

範例7-strcpy() #include<stdio.h> #include<string.h> int main( ) { int i; char s1[40]="abcde"; char s2[40]="fghijk"; strcpy(s1,s2); printf("The new string are=%s\n",s1); system("pause"); return 0; } s1 a b c d e \0 s2 f g h i j k \0 s1 f g h i j k \0

範例8-strncpy() #include<stdio.h> #include<string.h> int main( ) { int i; char s1[40]="abcde"; char s2[40]="fghijk"; strncpy(s1,s2,3); printf("The new string are=%s\n",s1); system("pause"); return 0; } s1 a b c d e \0 s2 f g h i j k \0 s1 f g h d e \0

範例9-strcmp() #include<stdio.h> #include<string.h> int main( ) { int i,p; char s1[40]="abcde"; char s2[40]="fghijk"; p=strcmp(s1,s2); printf("strcmp(s1,s2)=%d\n",p); system("pause"); return 0; } s1 a b c d e \0 s2 f g h i j k \0 a(97) – f(102) = -1

範例10-strlen() #include<stdio.h> int main( ) { int i,p,q; #include<string.h> int main( ) { int i,p,q; char s1[40]="abcde"; char s2[40]="fghijk"; p=strlen(s1); q=strlen(s2); printf("s1=%d;s2=%d\n",p,q); system("pause"); return 0; }

範例11-strchr(),strstr() #include<stdio.h> #include<string.h> int main( ) { char *p,*q,*ch2="am"; int ch1='a'; char *s1="I am OK"; char *s2="I am OK"; p=strchr(s1,ch1); q=strstr(s2,ch2); printf("s1 serach 'a'=%s ; s2 search 'am'=%s\n",p,q); system("pause"); return 0; }