שימוש בספריית STRING

  • פותח הנושא boo26
  • פורסם בתאריך

boo26

New member
שימוש בספריית STRING

אם אני משתמשת בספריה סטרינג ואני בונה מערך של סטרינגים איך אני יכולה לקבל את אורך אחד הסטרינגים במערך משום מה לא נותן לי להשתמש בSRTLEN
#include <iostream> #include <string> #include <string.h> using namespace std; int main() { int i, N=0, M=0; string X[64]; for ( i=0; i<64; i++ ) { cin >> X; ---->> if (strlen(X) == 0) break; else cout << "X[" << i << "] is: " << X << endl; } cout << "end of Xn" << endl; M = strlen(X[1]); double matrix[N][M]; return 0; }
 

HaRmosh

New member
טעות:

strlen מקבלת מחרוזת בצורת *char. ל-string של ++c יש מתודה שמחזירה את האורך:
string a; for (int i = 0; i < a.Size(); i++) { // do whatever you want... }​
 

codec

New member
יש לך בילבול

בין std::string ל-string.h. משום מה את מנסה להשתמש בשנייהם ולערבב אותם. זה לא יילך. string.h נועד לעבוד על *char וקרוביו. זה מ-C. שימוש ב-std::string הוא שיטה שונה לגמרי לעבוד עם מחרוזות. תבחרי דרך אחת ותישארי איתה.
 
לא לבחור דרך אחת ולהישאר אלא.....

לא לבחור דרך אחת ולהישאר אלא להיצמד ל std::string השימוש ב *char והפונקציות שמטפלות בו הוא לרוב לא מוצדק. אפ השפה ++C רצוי להשתמש במיטב שהיא מציעה ולחסוך ים של צרות אח"כ. למשל string במקום *char ו-vector במקום מערך מובנה וכו'
 
למעלה