View Full Version : แยกข้อมูลจาก string
zinyx
20-07-2007, 09:31 PM
อ่าคือ สมมติผมมี string ข้อความนึง
1,Zinyx,5,6,7
[/b]
ที่ผมต้องการคือ อยากให้แยกมาเก็บใน Variables
ผมใช้โค้ดแบบนี้
sscanf(str,"%d,%s,%d,%d,%d",id,name,para1,para2,para3);
[/b]
แต่ไม่เวิค
id = 1
name = "Zinyx,5,6,7"
มันเปนงี้อะครับ ขอคำแนะนำด้วยครับ
aumNaKab
20-07-2007, 10:07 PM
ผมไม่ค่อยแน่ใจนะคับ ลองวิธีนี้ดูไหมคับ (พอดีผมไม่ได้ลง C++ ในเครื่อง)
เท่าที่ผมดูจากเว็บต่างประเทศ ถ้าเป็นตัวเลข เขาจะใช้ Pointer ในการอ้างอิงนะคับ
อันนี้จากเว็บญี่ปุ่น แต่ผมแปลงเป็นภาษาอังกฤษแทนนะคับ
[code]
#include
zinyx
22-07-2007, 01:04 AM
ขอบคุณมากครับ แต่
ไม่เป็นผลครับ ที่ได้ออกมาคือ
Hello, Zinyx,5,6,7. Your id is 1 And para1 = 4072496, para2 = 4072528, para3 = 2
009315348
[/b]
แต่ พอผมลองเปลี่ยนจาก , เป็น ' ' (สเปซ) ได้ผลครับ
main()
{
char str[] = "1 Zinyx 5 6 7";
int id, para1, para2, para3;
char name[20];
sscanf(str,"%d %s %d %d %d",&id,name,¶1,¶2,¶3);
printf("Hello, %s. Your id is %d And para1 = %d, para2 = %d, para3 = %d",name,id,para1,para2,para3);
}
[/b]
Output
Hello, Zinyx. Your id is 1 And para1 = 5, para2 = 6, para3 = 7[/b]
อื้ม ไม่ค่อยเข้าใจเหมือนกันครับ
chein249
09-08-2007, 09:10 PM
sscanf มันจะตัดได้แต่ white space ครับ
พอเจอ comma มันก็จะคิดว่าเป็น ส่วนหนึ่งของ string
มันก็เลยอ่าน name ได้เป็น Zinyx,5,6,7 น่ะครับ
อ้างอิงจาก
http://www.cplusplus.com/reference/clibrar...dio/sscanf.html (http://www.cplusplus.com/reference/clibrary/cstdio/sscanf.html)
ถ้าอยากให้ตัด comma ได้ ลองใช้ strtok ดูนะครับ
http://www.cplusplus.com/reference/clibrar...ing/strtok.html (http://www.cplusplus.com/reference/clibrary/cstring/strtok.html)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.