SlideShare a Scribd company logo
ฟังก์ชันส่งผ่านสตริง
Advance Computer Programming
รหัสวิชา 32090207
อ. กิตตินันท์ น้1อยมณี 1
เนื้อหา
1. String
2. Parameter 1 ข้อความ และหลายๆ ข้อความ
อ. กิตตินันท์ น้1อยมณี 2
String
อ. กิตตินันท์ น้3อยมณี 3
String
• เมื่อได้พื้นฐานของ Array กับ Pointer เรื่องนี้ก็จะไม่ยากแล้ว
• String คือ ข้อความ มีลักษณะเป็น array ของตัวอักขระ
• String จะจบด้วย “0” ซึ่งเป็นตัวจบข้อความ (ascii 0)
int a[5]; มี 5 ค่า
char b[5]; เป็น Array ของ Char (เรียกว่า String)
อ. กิตตินันท์ น้1อยมณี 4
String
• สามารถกําหนดค่าเริ่มต้นได้ เช่น
char b[5] = “Hi”;
อ. กิตตินันท์ น้1อยมณี 5
0 1 2 3 4
b H i 0
String
• ถ้าต้องการเปลี่ยนค่า เช่น
b = “High”;
b[0] = ‘H’;
b[1] = ‘i’;
b[2] = ‘g’;
b[3] = ‘h’;
b[4] = ‘0’;
อ. กิตตินันท์ น้1อยมณี 6
ใส่เป็นชุดไม่ได้ การใส่จะต้องแยกใส่
เป็นตัวๆ
หมายเหตุ: อักขระเดียวใช้ Single quote
String
• ภาษา C ก็เลยมีคําสั่งเกี่ยวกับ String อยู่ใน string.h
• เวลาเรียกใช้ก็ต้อง #include <string.h>
char b[5];
strcpy( b, “high” );
strcpy( b, “Hello” ); ทํางานไม่ได้ เพราะข้อความเกินที่จองไว้
อ. กิตตินันท์ น้1อยมณี 7
String
• String ถือเป็น Array ดังนั้นหลักการที่เรียนมาจาก Array
สามารถนํามาใช้ได้หมดเลย
• Array เป็น Pass by reference ในตัว นั่นก็หมายความว่า หาก
Function เปลี่ยนค่ามัน ใน Main ก็จะเปลี่ยนค่าตามไปด้วย
อ. กิตตินันท์ น้1อยมณี 8
Parameter 1 ข้อความ
และ
หลายๆ ข้อความ
อ. กิตตินันท์ น้9อยมณี 9
แบบ Argument
• Parameter 1 ข้อความ
void function_name ( char str[ ] )
void function_name ( char *str )
• Parameter String หลายๆ ข้อความๆ ละ 20 ตัวอักขระ
void function_name ( char str[][20] )
void function_name ( char (*str)[20] )
อ. กิตตินันท์ น้1อยมณี 10
แบบ Return
• Parameter 1 ข้อความ
char *function_name ( )
• Parameter String หลายๆ ข้อความๆ ละ 20 ตัวอักขระ
char ( *function_name() )[20]
อ. กิตตินันท์ น้1อยมณี 11
เพิ่มเติม
• ดังนั้นควรทําความเข้าใจกับการประกาศตัวแปร String ให้ดีๆ
• เราจะเน้นการส่งออกตัวแปรเป็นหลัก
char str[][20] === char (*str)[20] != char *str[20]
อ. กิตตินันท์ น้1อยมณี 12
ตัวอย่างการส่งแบบ Argument
ตัวอย่างที่ 1: Function ส่งออกข้อความ
อ. กิตตินันท์ น้1อยมณี 13
จํานวนสมาชิกแน่นอน
20 ตัว
ตัวอย่างการส่งแบบ Argument
ตัวอย่างที่ 1: Function ส่งออกข้อความ
• ข้อนี้คือการส่งผ่านทาง Parameters โดย String (Pass by reference)
ซึ่งต้นทางเป็น Array ที่ประกาศจํานวนสมาชิกอย่างแน่นอนแล้ว
อ. กิตตินันท์ น้1อยมณี 14
ตัวอย่างการส่งแบบ Argument
ตัวอย่างที่ 2: Function ส่งออกข้อความ
อ. กิตตินันท์ น้1อยมณี 15
ยังไม่กําหนดจํานวนสมาชิก
เอาไว้ไปจองใน Function
แบบชั่วคราวเอา (เรียก
ลักษณะแบบนี้ว่า Dynamic)
ตัวอย่างการส่งแบบ Argument
ตัวอย่างที่ 2: Function ส่งออกข้อความ
อ. กิตตินันท์ น้1อยมณี 16
เป็นการทําให้ str มีที่จับจอง
ตัวอย่างการส่งแบบ Argument
ตัวอย่างที่ 2: Function ส่งออกข้อความ
• ข้อนี้คือการส่งผ่านทาง Parameter โดย String ต้นทางเป็น Pointer
(Pass by reference ของ Pointer) ซึ่งไม่ได้ทําการกําหนดของ String
อ. กิตตินันท์ น้1อยมณี 17
ตัวอย่างการส่งแบบ Return
ตัวอย่างที่ 3: Function ส่งออกข้อความ
อ. กิตตินันท์ น้1อยมณี 18
ต้นทางแบบนี้มีพื้นที่ว่าง
ตายตัวคือ 20 ช่อง ดังนั้น
ต้องคัดลอกข้อความจาก
Function
ตัวอย่างการส่งแบบ Return
ตัวอย่างที่ 4: Function ส่งออกข้อความ
อ. กิตตินันท์ น้1อยมณี 19
Function Return Address
ตัวอย่างการส่งแบบ Return
• จากตัวอย่างที่ 4 จะเห็นว่า
str = GetText();
• การทํางานในลักษณะนี้เป็นการส่ง Address มาได้เลย ศักย์เท่ากันอีกด้วย
• ลักษณะนี้จะทํางานเร็วกว่า เพราะข้อมูลคือชุดเดียวกัน ประหยัด
หน่วยความจํากว่าด้วย
อ. กิตตินันท์ น้1อยมณี 20
char pointer char pointer
เพิ่มเติม
• คําสั่ง scanf จะรับ
–String
–ข้อความ
–int
• คําสั่ง gets จะรับ
–String อย่างเดียว (แต่รับเว้นวรรคได้ด้วย)
หมายเหตุ: gets จะรับ String ได้สมบูรณ์แบบมากกว่า scanf
อ. กิตตินันท์ น้1อยมณี 21

More Related Content

PDF
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
PDF
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
PPTX
โครงสร้างแบบอาร์เรย์
PPT
อาเรย์ (Array)
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
โครงสร้างแบบอาร์เรย์
อาเรย์ (Array)

What's hot (19)

PPT
ตัวแปรชุดและตัวแปรอักขระ
PPTX
บทที่ 5
DOC
ตัวแปรชุดและตัวแปรอักขระ
PDF
งานทำ Blog บทที่ 8
PPT
ตัวแปรชุดและตัวแปรอักขระ PPT
PDF
งานทำ Blog บทที่ 8
DOC
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
PPTX
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
PPT
08 arrays
PPTX
..Arrays..
PDF
Java-Chapter 07 One Dimensional Arrays
PDF
งานนำเสนอ1
PPTX
งานนำเสนอ1
PDF
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือก
PDF
Java-Chapter 05 String Operations
PDF
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
PDF
บทที่ 6 อาร์เรย์
PDF
Java-Chapter 10 Two Dimensional Arrays
PDF
Java-Chapter 02 Data Operations and Processing
ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5
ตัวแปรชุดและตัวแปรอักขระ
งานทำ Blog บทที่ 8
ตัวแปรชุดและตัวแปรอักขระ PPT
งานทำ Blog บทที่ 8
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
08 arrays
..Arrays..
Java-Chapter 07 One Dimensional Arrays
งานนำเสนอ1
งานนำเสนอ1
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือก
Java-Chapter 05 String Operations
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 6 อาร์เรย์
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 02 Data Operations and Processing
Ad

Similar to (Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง (6)

PPT
Java Programming [11/12] : Input and Output Classes
PDF
Java Programming: คลาสอินพุตและเอาต์พุต
PPT
09 multi arrays
PDF
การจัดการข้อมูลชนิด String ใน VB.NET 2005 Express Editor
PPT
7 pointer day10
Java Programming [11/12] : Input and Output Classes
Java Programming: คลาสอินพุตและเอาต์พุต
09 multi arrays
การจัดการข้อมูลชนิด String ใน VB.NET 2005 Express Editor
7 pointer day10
Ad

(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง