אם השאלות... במצבעים

אם השאלות... במצבעים

מה שעשיתי היה זה למצוא את אורך המחרוזת הוא עובד אצלי מצויין רציתי לדעת האם כתבתי את הקוד נכון או שאני צריך לשפר משהו עדין לא ללמדתי mmaloc ו calloc
#include<stdio.h> char LengthString(char *lol) { char *temp=lol,sum=0; while(*temp!='\0') { sum++; temp++; } return(sum); } void main() { int i; char string[]={"hebnzunalovehimselfandnowwewantdosomething"}; i=LengthString(string); printf("%d",i); }​
 

אלדד28

New member
אפשר לשפר -

size_t strlen(const char *str) { const char *iter = str; while (iter++ != '\0'); return (iter-str); }​
מה שיניתי? 1. size_t במקום char - מי אמר שגודל המחרוזת הוא עד 127, הערך המקסימלי של char? 2. * const char במקום * char. אסור לך לשנות את המחרוזת. 3. אין צורך ב-sum. אפשר לקדם את המצביע הזמני (iter - איטרטור) ובסוף לחשב את ההפרש בינו לבין המחרוזת המקורית. 4. שימוש בשמות משמעותיים.
 
למעלה