C/C++ - 字符串与字符串函数

Similar documents
C/C++程序设计 - 字符串与格式化输入/输出

C/C++ - 文件IO

新版 明解C言語入門編

C/C++ - 函数

新・明解C言語入門編『索引』

新・解きながら学ぶC言語

CC213

C

C/C++ - 字符输入输出和字符确认

untitled

C/C++ 语言 - 循环

C/C++语言 - 运算符、表达式和语句

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

C/C++语言 - C/C++数据

Microsoft PowerPoint - 20-string-s.pptx

新版 明解C++入門編

nooog

C/C++ - 结构体、共用体、枚举体

プログラムの設計と実現II

C

C/C++ - 数组与指针

Untitiled

C/C++语言 - 分支结构

CC213

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

C C

Microsoft Word - CPE考生使用手冊 docx

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C Project 30 C Project 3 60 Project 40

_汪_文前新ok[3.1].doc

Ps22Pdf

WWW PHP

C++ 程式設計

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

Learn_Perl 3-02.pdf

Microsoft Word - 第3章.doc

untitled

,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : : : /16 : : 96 : : : ISBN 7

C

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

数据结构与算法 - Python基础

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

Ps22Pdf

c_cpp

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

epub 33-8

翻 那 本 日 记, 好 像 和 自 己 赌 气, 好 像 那 个 人 还 在 乎 一 样, 里 面 的 内 容, 因 为 在 较 着 劲, 就 是 不 愿 意 去 看 那 些 甜 蜜 的 过 往 小 小 的 日 记 本 塞 在 行 李 箱 的 底 部, 安 静 地 呆 在 那 儿, 只 是, 不

<D0A1B0E02E707562>

untitled

Lorem ipsum dolor sit amet, consectetuer adipiscing elit

untitled

C 1


untitled

2_ Bridegroom fast 1 - v1

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Windows XP

CC213

( 表 1) 學 校 基 本 資 料 學 校 類 型 新 竹 市 東 區 新 竹 國 小 班 級 數 55 校 址 新 竹 市 興 學 街 106 號 電 話 傳 真 網 址

可 愛 的 動 物 小 五 雷 雅 理 第 一 次 小 六 甲 黃 駿 朗 今 年 暑 假 發 生 了 一 件 令 人 非 常 難 忘 的 事 情, 我 第 一 次 參 加 宿 營, 離 開 父 母, 自 己 照 顧 自 己, 出 發 前, 我 的 心 情 十 分 緊 張 當 到 達 目 的 地 後

( 含 要 ) 1-2 用 或 雇 用, 抑 或 有 無 俸 給 文 職 或 武 職, 政 官 或 事 官 均 屬 之, 其 不 以 具 備 人 資 格 為 限, 因 此 屬 於 最 廣 義 之 念 四 廣 義 念 之 依 服 24 條 之 規 定 : 本 於 受 有 俸 給 之 文 武 職, 及

〇〇考區105年國中教育會考簡章

新竹市建華國民中學九十四學年度課程計畫

Microsoft Word 軟體設計第二部份範例試題_C++_ _1_.doc

- June 意 味 上 梁 不 正 下 梁 歪 地 动 辄 失 去 理 性 而 对 部 下 狂 吠 给 我 滚, 毛 也 曾 因 被 吵 醒 而 对 哨 兵 猛 吼 老 子 揍 你! 并 罚 站 254) 和 大 红 灯 笼 高 高 挂 成 叠 影 的 一 是 太 太 被 老 爷 惯 坏 而 任

PIC_SERVER (11) SMTP ( ) ( ) PIC_SERVER (10) SMTP PIC_SERVER (event driven) PIC_SERVER SMTP 1. E-


海報.pdf

<4D F736F F F696E74202D20312EB9FEB6FBB1F5B9A4D2B5B4F3D1A7D5E7C1BCA3BAC3E6CFF2D1D0BEBFC9FAB8B4CAD4B5C4BDE1B9B9BBAFC3E6CAD4BFBCBACBCCBDCBF7D3EBCAB5BCF92E BBCE6C8DDC4A3CABD5D>

莊 子

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

新北考區105年國中教育會考簡章

105 年 國 中 教 育 會 考 重 要 日 期 項 目 日 期 及 時 間 報 名 1. 集 體 報 名 :105 年 3 月 10 日 ( 星 期 四 ) 至 3 月 12 日 ( 星 期 六 ) 每 日 8:00~12:00 13:30~17:00 2. 個 別 報 名 : 於 上 網 填

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

臺北市101學年度學生舞蹈比賽秩序冊(個人組)

國立桃園高中96學年度新生始業輔導新生手冊目錄

2-7.FIT)

untitled


Microsoft Word - chap13.doc

高雄市左營國民小學八十九學年度第一學期一年級總體課程教學進度表

FY.DOC

untitled

untitled

区 域 活 动 进 入 中 班 我 们 区 域 的 设 置 和 活 动 材 料 都 有 所 变 化, 同 时 也 吸 引 孩 子 们 积 极 的 参 与 学 习 操 作 区 的 新 材 料 他 们 最 喜 欢, 孩 子 们 用 立 方 块 进 行 推 理 操 作 用 扑 克 牌 进 行 接 龙 游

Microsoft PowerPoint - string_kruse [兼容模式]

Guide to Install SATA Hard Disks

10 月 8 日 : 晴 糧 魯 道 自 殺 之 處, 他 的 兒 子 與 族 3 月 29 日 冷 風 過 境, 強 風 人 集 體 跳 崖 自 殺, 他 們 不 屈 膝 7:00 土 城 捷 運 站, 三 輛 七 級, 五 天 下 四 天 的 雨, 結 的 精 神, 才 是 賽 德 克. 巴 萊

02

Ps22Pdf

Lorem ipsum dolor sit amet, consectetuer adipiscing elit

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ


Computer Architecture

高中英文科教師甄試心得

( 一 ) 實 習 的 時 候 就 和 讀 書 會 的 同 學 一 起 把 陳 嘉 陽 紮 實 地 讀 過 一 遍 了, 也 因 此 在 考 完 教 檢 之 後, 我 們 只 有 把 不 熟 或 是 常 考 的 章 節 再 導 讀 一 次 ( 例 如 : 統 計 行 政 法 規 ), 主 力 則 是

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

Love Actually 真 的 戀 愛 了!? 焦 點 主 題 2035 年 一 個 寒 冷 卻 又 放 晴 的 下 午, 爸 媽 一 大 清 早 已 上 班, 只 得 小 奈 獨 個 兒 待 在 家 中, 奢 侈 地 享 受 著 她 的 春 節 假 期 剛 度 過 了 期 考 的 艱 苦 歲

編 者 的 話 理 財 的 概 念 要 從 小 培 養 還 記 得 小 時 候, 一 個 香 腸 包 賣 多 少 錢 嗎? 3 元? 4 元? 5 元? 現 在 又 需 要 幾 多 錢 才 可 買 一 個 呢? 6 元? 8 元? 10 元? 十 年 後 又 賣 多 少 錢?( 大 概 20 元 有

现代人的健康生活方式

Transcription:

C/C++

Table of contents 1. 2. 3. 4. 1

char C 2

char greeting [50] = " How " " are " " you?"; char greeting [50] = " How are you?"; 3

printf ("\" Ready, go!\" exclaimed John."); " Ready, go!" exclaimed John. 4

(static storage) 5

// quotes.c: # include <stdio.h> int main ( void ) { printf ("%s, %p, %c\n", "We", " are ", *" space farers "); return 0; } 6

// quotes.c: # include <stdio.h> int main ( void ) { printf ("%s, %p, %c\n", "We", " are ", *" space farers "); return 0; } We, 0 x100000f81, s 6

char s [40] = " Hello world!" 7

char s [40] = " Hello world!" char s[] = { H, e, l, l, o,, w, o, r, l, d,!, \0 }; 7

1 8

char s[] = " Hello world!" 9

char s[] = " Hello world!" char * s = " Hello world!" 9

char s[] = " Hello world!" char * s = " Hello world!" s 9

char heart [] = "I love C!"; char * head = "I love math!"; heart head 10

(1) for ( i = 0; i < 6; i ++) putchar ( heart [i]); putchar ( \n ); for ( i = 0; i < 6; i ++) putchar ( head [i]); putchar ( \n ); I I love love 11

(2) for ( i = 0; i < 6; i ++) putchar (*( heart + i)); putchar ( \n ); for ( i = 0; i < 6; i ++) putchar (*( head + i)); putchar ( \n ); I I love love 12

(3) while (* head!= \0 ) putchar (*( head ++) ); I love math! 13

(4) head heart head = heart ; heart = head ; 14

(5) heart heart [7] = R ; OR *( heart + 7) = R ; 15

(5) heart heart [7] = R ; OR *( heart + 7) = R ; 16

const char * fruit [4] = { " Apple ", " Pear ", " Orange ", " Peach " }; 4 fruit char fruit[0] fruit[1]... 17

18

char * name ; scanf ("%s", name ); name 19

char name [81]; C malloc 20

C scanf() gets() fgets() 21

gets() gets( get string) 22

gets() // name1.c # include <stdio.h> # define MAX 81 int main ( void ) { char name [ MAX ]; printf ("Hi, what s your name?\n"); gets ( name ); printf (" Nice name, %s.\n", name ); return 0; } 23

gets() Hi, what s your name? warning : this program uses gets (), which is unsafe. Xiaoping Zhang Nice name, Xiaoping Zhang. 24

gets() Hi, what s your name? warning : this program uses gets (), which is unsafe. Xiaoping Zhang Nice name, Xiaoping Zhang. gets() gets() 24

gets() 1 // name2.c: 2 # include <stdio.h> 3 # define MAX 81 4 int main ( void ) 5 { 6 char name [ MAX ]; 7 char * ptr ; 8 printf ("Hi, what s your name?\n"); 9 ptr = gets ( name ); 10 printf ("%s? Ah! %s!\n", name, ptr ); 11 return 0; 12 } 25

gets() Hi, what s your name? warning : this program uses gets (), which is unsafe. Xiaoping Zhang Xiaoping Zhang? Ah! Xiaoping Zhang! 26

fgets() gets() fgets() 27

fgets() gets() fgets() 1. fgets() n fgets() n-1 2. fgets() gets() 3. fgets() stdin() 28

fgets() 1 // name3.c 2 # include <stdio.h> 3 # define MAX 81 4 int main ( void ) 5 { 6 char name [ MAX ]; 7 char * ptr ; 8 printf ("Hi, what s your name?\n"); 9 ptr = fgets (name, MAX, stdin ); 10 printf ("%s? Ah! %s!\n", name, ptr ); 11 return 0; 12 } 29

gets() Hi, what s your name? Xiaoping Zhang Xiaoping Zhang? Ah! Xiaoping Zhang! 30

gets() Hi, what s your name? Xiaoping Zhang Xiaoping Zhang? Ah! Xiaoping Zhang! fgets fgets 30

scanf() %s scanf() scanf() gets() scanf() gets() 31

scanf() scanf() 1. %s 2. %10s scanf() 10 32

scanf() 1: _ name scanf("%s", name); Fleebert_Hup Fleebert _Hup scanf("%5s", name); Fleebert_Hup Fleeb ert_hup scanf("%5s", name); Ann_Ular Ann _Ular 33

scanf() // scan_str.c: # include <stdio.h> int main ( void ) { char name1 [11], name2 [11]; int count ; printf (" Please enter 2 names.\n"); count = scanf ("%5s %10 s",name1, name2 ); printf ("I read the %d names %s and %s.\n", count, name1, name2 ); return 0; } 34

scanf() Please enter 2 names. Jesse Jukes I read the 2 names Jesse and Jukes. Please enter 2 names. Liza Applebottham I read the 2 names Liza and Applebotth. Please enter 2 names. Portensia Callowit I read the 2 names Porte and nsia. 35

puts() C puts() fputs() printf() 36

puts() i // put_out.c: # include <stdio.h> # define DEF "I am a # defined string." int main ( void ) { char str1 [80] = "An array was initialized to me."; const char * str2 = "A pointer was initialized to me."; puts ("I m an argument to puts ()."); puts ( DEF ); puts ( str1 ); puts ( str2 ); puts (& str1 [5]) ; puts ( str2 +4) ; return 0; } 37

puts() I m an argument to puts (). I am a # defined string. An array was initialized to me. A pointer was initialized to me. ray was initialized to me. inter was initialized to me. 38

puts() puts() printf() puts() puts() 39

puts() char str1 [ 80] = " An array was initialized to me. ";... puts (& str1 [5]) ; ray was initialized to me. 40

puts() char str1 [ 80] = " An array was initialized to me. ";... puts (& str1 [5]) ; ray was initialized to me. &str1[5] str1 6 r puts() 40

puts() const char * str2 = " A pointer was initialized to me.";... puts ( str2 +4) ; inter was initialized to me. 41

puts() const char * str2 = " A pointer was initialized to me.";... puts ( str2 +4) ; inter was initialized to me. str2+4 i puts() 41

puts() 1 // nono.c: 2 # include <stdio.h> 3 int main ( void ) 4 { 5 char side_a [] = " Side A"; 6 char dont [] = { W, O, W,! }; 7 char side_b [] = " Side B"; 8 9 puts ( dont ); 10 11 return 0; 12 } 42

puts() 1 // nono.c: 2 # include <stdio.h> 3 int main ( void ) 4 { 5 char side_a [] = " Side A"; 6 char dont [] = { W, O, W,! }; 7 char side_b [] = " Side B"; 8 9 puts ( dont ); 10 11 return 0; 12 } 42

puts() WOW! Side A 43

puts() WOW! Side A dont puts() dont side_a dont 43

fputs() fputs() puts() fputs() stdout stdout stdio.h puts() fputs() 44

fputs() gets() puts() char line [81]; while ( gets ( line )) puts ( line ); 45

fputs() fgets() fputs() char line [81]; while ( fgets (line, 81, stdin )) fputs (line, stdout ); line 46

fputs() puts() gets() fputs() fgets() 47

printf() printf() puts() printf ("%s\n", string ); puts ( string ); 48

printf() printf() printf ("Well, %s, %s\n", name, MSG ); 49

C string.h 1. strlen() 2. strcat() 3. strncat() 4. strcmp() 5. strncmp() 6. strcpy() 7. strncpy() 50

strlen() int * strlen ( const char * s); s s 51

strlen() i // test_fit.c # include <stdio.h> # include <string.h> void fit ( char *, unsigned int ); int main ( void ) { char mesg [] = " Hold on to your hats, hackers."; puts ( mesg ); fit (mesg,7) ; puts ( mesg ); puts (" Let s look at some more of the string."); puts ( mesg + 8); } return 0; 52

strlen() ii void fit ( char * string, unsigned int size ) { if ( strlen ( string ) > size ) *( string + size ) = \0 ; } 53

strlen() Hold on to your hats, hackers. Hold on Let s look at some more of the string. to your hats, hackers. 54

strcat() char * strcat ( char * s1, const char * s2); s2 s1 s2 s1 55

strcmp() s1 s2 strcat() char * s1 56

strcat() i # include <stdio.h> # include <string.h> # define SIZE 80 int main ( void ) { char flower [ SIZE ]; char addon [] = " s smell like old shoes."; puts (" What is your favorite flower?"); gets ( flower ); strcat ( flower, addon ); puts ( flower ); puts ( addon ); } return 0; 57

strcat() ii 58

strcat() What is your favorite flower? Rose Roses smell like old shoes. s smell like old shoes. 59

strncat() strcat() strncat() 60

strncat() char * strcat ( char * s1, const char * s2, size_t n); s2 n s1 s2 s1 strncat() char * s1 61

strncat() i # include <stdio.h> # include <string.h> # define SIZE 30 # define BUGSIZE 4 int main ( void ) { char flower [ SIZE ]; char addon [] = " s smell like old shoes."; char bug [ BUGSIZE ]; int available ; puts (" What is your favorite flower?"); gets ( flower ); if (( strlen ( addon ) + strlen ( flower ) + 1) <= SIZE ) strcat ( flower, addon ); puts ( flower ); 62

strncat() ii puts (" What is your favorite bug?"); gets ( bug ); available = BUGSIZE - strlen ( bug ) - 1; strncat (bug, "is sdfsdf ", 1); puts ( bug ); } return 0; 63

strncat() What is your favorite flower? Rose Roses smell like old shoes. What is your favorite bug? Aphid Aphids smell 64

strcmp() int strcmp ( const char * s1, const char * s2); s1 s2 0 ASCII 65

strcmp() 66

strcmp() i /* compare. c -- this will work */ # include <stdio.h> # include <string.h> # define ANSWER " Grant " # define MAX 40 int main ( void ) { char try [ MAX ]; puts (" Who is buried in Grant s tomb?"); gets ( try ); while ( strcmp (try, ANSWER )!= 0) { puts ("No, that s wrong. Try again."); gets ( try ); } puts (" That s right!"); 67

strcmp() ii } return 0; 68

strcmp() strcmp ("A", "A") is 0 strcmp ("A", "B") is -1 strcmp ("B", "A") is 1 strcmp ("C", "A") is 2 strcmp ("Z", "a") is -7 strcmp (" apples ", " apple ") is 115 69

strcmp() strcmp ("A", "A") is 0 strcmp ("A", "B") is -1 strcmp ("B", "A") is 1 strcmp ("C", "A") is 1 strcmp ("Z", "a") is -1 strcmp (" apples ", " apple ") is 1 70

strncmp() int strncmp ( const char * s1, const char * s2, size_t n); s1 s2 n strcmp() 71

strncmp() "astro" 5 72

strncmp() i /* starsrch.c -- use strncmp () */ # include <stdio.h> # include <string.h> # define LISTSIZE 5 int main ( void ) { const char * list [ LISTSIZE ] = { " astronomy ", " astounding ", " astrophysics ", " ostracize ", " asterism " }; int count = 0; int i; for ( i = 0; i < LISTSIZE ; i ++) if ( strncmp ( list [i]," astro ", 5) == 0) 73

strncmp() ii { printf (" Found : %s\n", list [i]); count ++; } printf (" The list contained % d words beginning " " with astro.\n", count ); } return 0; 74

strncmp() Found : astronomy Found : astrophysics The list contained 2 words beginning with astro. 75

strcpy() char * strcpy ( char * s1, const char * s2); s2 s1 s1 76

strcpy() s2 (source) s1 (target) s2 s1 s2 77

strcpy() i /* copy1.c -- strcpy () demo */ # include <stdio.h> # include <string.h> # define SIZE 40 # define LIM 5 int main ( void ) { char qwords [ LIM ][ SIZE ]; char temp [ SIZE ]; int i = 0; printf (" Enter %d words beginning with q:\n", LIM ); while (i < LIM && gets ( temp )) { if ( temp [0]!= q ) printf ("%s doesn t begin with q!\n", temp ); 78

strcpy() ii } else { strcpy ( qwords [i], temp ); i ++; } } puts (" Here are the words accepted :"); for ( i = 0; i < LIM ; i ++) puts ( qwords [i]); return 0; 79

strcpy() Enter 5 words beginning with q: quit quarter quite quotient nomore nomore doesn t begin with q! quiz Here are the words accepted : quit quarter quite quotient quiz 80

strcpy() strcpy() char * 81

strcpy() # include <stdio.h> # include <string.h> # define WORDS " beast " # define SIZE 40 int main ( void ) { const char * orig = WORDS ; char copy [ SIZE ] = " Be the best that you can be."; char * ps; puts ( orig ); puts ( copy ); ps = strcpy ( copy + 7, orig ); puts ( copy ); puts (ps +6) ; return 0; } 82

strcpy() beast Be the best that you can be. Be the beast beast 83

strncpy() char * strcpy ( char * s1, const char * s2, size_t n); s2 n s1 n 84

strncpy() n n n 1 s1 85

strncpy() i # include <stdio.h> # include <string.h> # define SIZE 40 # define TARGSIZE 7 # define LIM 5 int main ( void ) { char qwords [ LIM ][ TARGSIZE ]; char temp [ SIZE ]; int i = 0; printf (" Enter %d words begin with q:\n", LIM ); while (i < LIM && gets ( temp )) { if ( temp [0]!= q ) printf ("%s doesn t begin with q!\n", temp ); 86

strncpy() ii } else { strncpy ( qwords [i], temp, TARGSIZE - 1); qwords [i][ TARGSIZE - 1] = \0 ; i ++; } } puts (" Here are the words accepted :"); for ( i = 0; i < LIM ; i ++) puts ( qwords [i]); return 0; 87

strncpy() Enter 5 words begin with q: quack quadratic quisling quota quagga Here are the words accepted : quack quadra quisli quota quagga 88

sprintf() sprintf() stdio.h printf() printf() 89

sprintf() i # include <stdio.h> # define MAX 20 int main ( void ) { char first [ MAX ]; char last [ MAX ]; char formal [2* MAX +10]; double prize ; puts (" Enter your first name :"); gets ( first ); puts (" Enter your last name :"); gets ( last ); puts (" Enter your prize money :"); 90

sprintf() ii scanf ("%lf", & prize ); sprintf ( formal, "%s, % -19s: $ %6.2 f\n", last, first, prize ); puts ( formal ); } return 0; 91

sprintf() Enter your first name : warning : this program uses gets (), which is unsafe. Teddy Enter your last name : Bear Enter your prize money : 2000 Bear, Teddy : $2000.00 92

sprintf() Enter your first name : warning : this program uses gets (), which is unsafe. Teddy Enter your last name : Bear Enter your prize money : 2000 Bear, Teddy : $2000.00 sprintf() format 92