כותב |
|
אורח אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 23 July 2006 בשעה 23:27 | | IP רשוּם
|
|
|
|
איך אני יכול להגיע לתו הראשון במשתנה מסוג string לדוגמא
קוד:
#include <iostream>
int main(void) { std::string buffer="abc"; // ?? return 0; }
|
|
|
איך אני יכול לשנות את a? ואיך אני יכול להדפיס את הbuffer cout לא עובד.. משום מה.
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 24 July 2006 בשעה 00:56 | | IP רשוּם
|
|
|
|
כמו מערך, בעזרת סוגריים מרובעות. הקוד הבא פעל לי מצויין:
קוד:
#include <iostream>
int main(void)
{
std::string buffer="abc";
for (int i=0; i<buffer.size(); i++)
{
std::cout << buffer;
}
std::cout << std::endl;
return 0;
}
|
|
|
אבל אם אתה רוצה לכתוב קוד נורמלי, עדיף פשוט שתכתוב:
קוד:
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string buffer="abc";
cout << buffer << endl;
return 0;
}
|
|
|
|
חזרה לתחילת העמוד |
|
|
Ratinho` אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 26 July 2006 בשעה 12:16 | | IP רשוּם
|
|
|
|
יש טיפוס סטרינג? ממתי?
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 26 July 2006 בשעה 14:10 | | IP רשוּם
|
|
|
|
מאז שהוכרז התקן של שפת CPP והספריה הסטנדרטית שלה.
ראה את הקישורים הבאים, לדוגמה:
|
חזרה לתחילת העמוד |
|
|
Ratinho משתמש מתחיל
הצטרף / הצטרפה: 12 March 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 23
|
נשלח בתאריך: 27 July 2006 בשעה 23:58 | | IP רשוּם
|
|
|
|
אז למה תמיד משתמשים (או שזה רק אני???!) במערך של char? טוב לדעת.. vc++ תומך בטיפוס?
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 28 July 2006 בשעה 01:31 | | IP רשוּם
|
|
|
|
כי רוב האנשים שחושבים שהם כותבים קוד CPP כותבים קוד של "C עם מחלקות ותוספות מגניבות".
כל מהדר שתומך ב-ANSI CPP תומך ב-string. למרות ש-VCPP לא תומך בתקן
במלואו (וגם GCC לא, אז שיירגעו הפינגווינים), הוא מממש את הספריה
הסטנדרטית של CPP לא רע, וכולל את string.
|
חזרה לתחילת העמוד |
|
|
Ratinho משתמש מתחיל
הצטרף / הצטרפה: 12 March 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 23
|
נשלח בתאריך: 30 July 2006 בשעה 20:25 | | IP רשוּם
|
|
|
|
סבבה, תודה רבה.. חוץ מההגדרה בהתחלה אפשר לעשות השמות רגילות? אוש בכל מקרה חייבים להשתמש בפונקציות ספריה של string.h ?
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 30 July 2006 בשעה 23:41 | | IP רשוּם
|
|
|
|
תלוי למה אתה מתכוון ב"השמות רגילות". המחלקה string (טוב נו, בעצם זה
typedef של מקרה ספציפי של תבנית מזעזעת למדי בשם basic_string, אבל למי
אכפת?) מגדירה את האופרטורים = (להשמה), ו + (לשרשור מחרוזות). היא גם כוללת את הפונקציה append (שמתפקדת כמו האופרטור +=).
בזכות ה-implicit conversions של CPP, אתה יכול להשתמש באופרטורים האלה גם
כדי לשרשר מחרוזות תווים רגילות של C לאובייקטים האלה (כלומר משתנים
מטיפוס char* ומחרוזות של ממש בקוד "כמו זאת").
מה שכן, שים לב שאתה לא נוגע ב-string.h, שזו הספריה של C, אלא משתמש
ב-string, קובץ שונה לחלוטין. התקן של CPP קובע שלקבצי האינקלוד של הספריה
הסטנדרטית אין סיומת h. לדוגמה: iostream, string, vector וכו'.
string.h כולל פונקציות מוכרות מ-C כמו strcat ו-strlen (ראה פירוט מלא כאן), אבל לא קשור אלינו ב-CPP.
בנוסף, שים לב שקבצי הספריה הסטנדרטית של C משנים את שמם ב-CPP. קובץ בשם
file.h מהספריה הסטנדרטית של C ייקרא cfile ב-CPP - בלי סיומת h ועם
התחילית c. כך math.h, time.h, ו-stdlib.h הופכים ל-cmath, ctime
ו-cstdlib בהתאמה ב-CPP. באותו אופן string.h הופך ל-cstring, אבל שוב זה לא קשור אליך ב-CPP. אתה צריך להשתמש ב-string הנקי והבטוח.
|
חזרה לתחילת העמוד |
|
|
Ratinho משתמש מתחיל
הצטרף / הצטרפה: 12 March 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 23
|
נשלח בתאריך: 31 July 2006 בשעה 00:04 | | IP רשוּם
|
|
|
|
אוקיי תודה רבה על העשרת הידע..
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 31 July 2006 בשעה 01:19 | | IP רשוּם
|
|
|
|
אין בעיה. תבוא כל יום.
|
חזרה לתחילת העמוד |
|
|