SlideShare a Scribd company logo
1 of 21
Download to read offline
ฟังก์ชันส่งผ่านสตริง
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

What's hot

ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระAreeya Onnom
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ Areeya Onnom
 
ตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPTตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPTAreeya Onnom
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรMook Sasivimon
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงdefeat overcome
 
Java-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional ArraysJava-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional ArraysWongyos Keardsri
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1prapassonmook
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Ploy StopDark
 
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือก
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือกPowerpointการเขียนคำสั่งควบคุมแบบมีทางเลือก
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือกNaphamas
 
Java-Chapter 05 String Operations
Java-Chapter 05 String OperationsJava-Chapter 05 String Operations
Java-Chapter 05 String OperationsWongyos Keardsri
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]Mook Sasivimon
 
บทที่ 6 อาร์เรย์
บทที่ 6 อาร์เรย์บทที่ 6 อาร์เรย์
บทที่ 6 อาร์เรย์Theeravaj Tum
 
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysJava-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysWongyos Keardsri
 
Java-Chapter 02 Data Operations and Processing
Java-Chapter 02 Data Operations and ProcessingJava-Chapter 02 Data Operations and Processing
Java-Chapter 02 Data Operations and ProcessingWongyos Keardsri
 

What's hot (19)

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

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

Java Programming [11/12] : Input and Output Classes
Java Programming [11/12] : Input and Output ClassesJava Programming [11/12] : Input and Output Classes
Java Programming [11/12] : Input and Output ClassesIMC Institute
 
Java Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตJava Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตThanachart Numnonda
 
09 multi arrays
09 multi arrays09 multi arrays
09 multi arraysa-num Sara
 
การจัดการข้อมูลชนิด String ใน VB.NET 2005 Express Editor
การจัดการข้อมูลชนิด String ใน VB.NET 2005 Express Editorการจัดการข้อมูลชนิด String ใน VB.NET 2005 Express Editor
การจัดการข้อมูลชนิด String ใน VB.NET 2005 Express EditorWarawut
 
7 pointer day10
7  pointer day107  pointer day10
7 pointer day10xuou888
 

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

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

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