หัวข้อ: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: qwerty ที่ 15 มีนาคม 2011, 17:18:18 คือว่าอยากแปลงแบบนี้ครับ
String="((5+5)*6)/2" อยากแปลงให้เป็น int อ่ะครับ คือแปลงแลวให้มันเป็นผลลัพธ์เลยอ่ะครับ ไม่รู้ต้องทำไง หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: saparee ที่ 15 มีนาคม 2011, 17:24:29 แล้วทำไมไม่เก็บเป็น int ซะเลยหล่ะครับ?
หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: qwerty ที่ 15 มีนาคม 2011, 17:30:07 คือผมรับค่านี้มาจาก text file อ่ะครับ แล้วทีนี้ text ไฟล์มันก็ต้องเก็บเป็น string อ่ะครับ
หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: BeerKingMan ที่ 15 มีนาคม 2011, 17:35:52 คือว่าอยากแปลงแบบนี้ครับ String="((5+5)*6)/2" อยากแปลงให้เป็น int อ่ะครับ คือแปลงแลวให้มันเป็นผลลัพธ์เลยอ่ะครับ ไม่รู้ต้องทำไง ถ้าจำไม่ผิด String มันเก็บค่าเป็นแบบ aray 1 มิติใช่ป่ะครับ เราก็ดึงเป็นตำแหน่งมาเลยได้ป่ะครับ พอดึงแยกมาเป็นตัวแล้ว ก็เอามาแปลงเป็น int โดยใช้เงือนไขอะไรก็ได้ แล้วแต่ท่านจะคิดเลย :wanwan003: หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: saparee ที่ 15 มีนาคม 2011, 17:38:44 ไปเจอมาเผื่อช่วยได้ :P
โค๊ด: #include <stdlib.h> หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: BeerKingMan ที่ 15 มีนาคม 2011, 17:40:49 ไปเจอมาเผื่อช่วยได้ :P โค๊ด: #include <stdlib.h> ไม่ได้ครับ เพราะ ข้อมูที่เก็บมามี ( ) * / ด้วย สัญลักพวกนี้หาก return เป้น int จะกลายเป็นจำนวนๆนึงเรียกว่า เลข ASCII หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: amazegu ที่ 15 มีนาคม 2011, 18:25:13 ลองหา Data Structure มาอ่านดูคับ เรื่อง prefix postfix นี่แหละ จำไม่ค่อยได้แล้ว ลืมๆ ไม่ได้ใช้นานคับ
หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: ohmohm ที่ 15 มีนาคม 2011, 18:46:05 ( ทบทวนความรู้หน่อย ) c/c++ ดูเหมือนว่ามันไม่มี eval() อาจต้องทำ parser เองนะ ใช้พวก bison
http://www.cs.utah.edu/dept/old/texinfo/bison/bison.html#SEC27 ( ดูที่ Infix Notation Calculator: calc ) หรืออีกวิธีกว่านั้น http://en.wikipedia.org/wiki/Reverse_Polish_notation#Example http://en.wikipedia.org/wiki/Shunting-yard_algorithm#C_example จาก จขกท มันเป็นแบบ infix notation ถ้าเราแปลงให้เป็น Reverse Polish notation ก็จะคำนวณด้วย stack calculator ได้ไม่ยาก หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: goto69 ที่ 18 มีนาคม 2011, 08:09:41 สร้างตัวแปรมาใหม่ครับ
var x=""+ ((5+5)*6)/2 ให้ข้างหน้าเปน string แล้วตัวแปรท่านจะเปนสตริงเอง หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: bonshington ที่ 18 มีนาคม 2011, 12:45:14 การบ้านวิชา data structure หรอคับ?
วิธีคำนวณคือ เปลี่ยนเครื่องหมายให้เป็น postfix เรียงตาม prior แล้วยัดใส่ stack เช่น a + b จะได้ ab+ จากนั้น pop ขึ้นมาคำนวณ ลองดูคับ ตอนผมทำครั้งแรก ใช้เวลาทำ 4 ชม หนุกหนานอยู่ หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: protoad56 ที่ 19 มีนาคม 2011, 09:38:21 การบ้านคุณกรุณาทำเอง แต่แนะนำให้ไปหาคำว่า stack calculator implement in c จะพบเฉลยอยู่มากมายเต็ม google :wanwan007:
หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: ohmohm ที่ 19 มีนาคม 2011, 16:47:26 แปลง infix ให้เป็น postfix มัน algorithm ยากเหมือนกันนะ
ลองถอด algorithm บางส่วน มาเป็น Javascript ( มีแค่ browser ใกล้ๆ ตัว ) คงเอาไปดัดแปลงเป็น C ไม่ยากมาก โค๊ด: <html> หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: zenithsoul ที่ 20 มีนาคม 2011, 17:15:54 ทำ stack การบวก ลบหรือครับ :P
หัวข้อ: Re: ใครมีวิธีแปลง int เป็น string ของ ภาษา c/c++ มั้งครับ เริ่มหัวข้อโดย: 360mins ที่ 20 มีนาคม 2011, 21:51:37 เป็นสตริงมาทั้งดุ้นแบบนี้ สำหรับสมองอันน้อยนิดของผมก็จะตัดสตริงทีละตัว เช็คว่าเป็นตัวเลขหรือเครื่องหมาย ถ้าเป็นตัวเลข ก็เช็คตัวต่อไปว่าเป็นตัวเลขหรือเครื่องหมาย
ถ้าตัวเลขก็เอามาต่อตัวเลขก่อนหน้านั้นแต่ถ้าเป็นเครื่องหมายก็เช็คสตริงว่าเป็นเครื่องหมายอะไรก็ส่งไปเงื่อนไขนั้น แล้วก็เช็คตัวเลขถัดไปบลาๆ จนกว่าจะหาสตริงไม่เจอ งงมั้ย ผมยังงงเลย :P |