פורסם 2006 בינואר 2919 שנים אהלן! איך אני מעתיק תוכן של מחרוזת אחת לשנייה ללא הרווחים? האם strncpy יכולה לעשות את זה? תודה מראש לעוזרים
פורסם 2006 בינואר 2919 שנים for( ; *source; source++ ){ if( *source != ' ' ) { *(target++) = *source; }}*target = NULL; משהו כזה? :
פורסם 2006 בפברואר 119 שנים מחבר טוב - קצת רקע קודם - אני צריך לקבוע אם מחרוזת מסוימת היא פלינדרום או לא. צריך להעתיק את המחרוזת למחרוזת חדשה, ללא הרווחים ו-non case sensitive, ולבצע את הבדיקה על המחרוזת החדשה.הבעיה היא שחלק מהפלינדרומים הוא מזהה וחלק לא (נוספים סימנים בסוף השורה), ואני לא מצליח לעלות על הטעות... :-\הנה הקוד של התוכנית: //Prog checks if input is palindrome#include<stdio.h>#include<stdlib.h>#include<string.h>int main(void){ char string[80], pal_chk[80]; int length, i=0, k=0; printf("Enter a string: "); gets (string); //copies string without spaces and converts to lower-case while (string[i] != NULL){ if (string[i]>='a' && string[i]<='z'){ pal_chk[k] = string[i]; i++; k++; } else if (string[i]>='A' && string[i]<='Z'){ pal_chk[k] = string[i]+32; i++; k++; } else i++; } length=strlen(pal_chk); printf("%d\n", length); for(i=0; pal_chk[i]!=NULL; i++) printf("%c", pal_chk[i]); for (i=0; i<=length/2; i++) if (pal_chk[i] != pal_chk[length-i-1]) { printf("\nThis is not a palindrome :-(\n"); system("pause"); return 0; } //if we got this far - it's a palindrome printf("\nThis is a palindrome :-)\n"); system("pause"); return 0;}אם מישהו רואה את הטעות ויכול להאיר את עיני, זה מאד יעזור לידוגמא לפלינדרום שמצא: Dennis and Edna sinned.דוגמא לפלינדרום שלא מצא: step on no pets
פורסם 2006 בפברואר 119 שנים לא נראה לי שאתה מעתיק את ה- null בסוף המחרוזת. זה לבד יכול לגרום לך המון בלאגנים.בנוסף - נראה לי שמספיק לך לבדוק עד length-1)/2) אבל זה לא אמור לשנות את התוצאה.
פורסם 2006 בפברואר 119 שנים //Prog checks if input is palindrome#include<stdio.h>#include<stdlib.h>#include<string.h>int main(void){ char string[80], pal_chk[80]; int length, i=0, k=0; printf("Enter a string: "); gets (string); //copies string without spaces and converts to lower-case while (string != NULL){ if (string>='a' && string<='z'){ pal_chk[k] = string; i++; k++; } else if (string>='A' && string<='Z'){ pal_chk[k] = string+32; i++; k++; } else i++; } pal_chk[k] = NULL; length=strlen(pal_chk); printf("%d\n", length); for(i=0; pal_chk!=NULL; i++) printf("%c", pal_chk); for (i=0; i<=length/2; i++) if (pal_chk != pal_chk[length-i-1]) { printf("\nThis is not a palindrome :-(\n"); system("pause"); return 0; } //if we got this far - it's a palindrome printf("\nThis is a palindrome :-)\n"); system("pause"); return 0;}
פורסם 2006 בפברואר 119 שנים מחבר אויש, איזה דפוק אני המון המון תודה לשניכם - מחר אני אשחט לכבודכם כבש!
פורסם 2006 בפברואר 219 שנים מחבר רומא, הא?האמת שלא... (יש לי yes)לא רשמתי את זה מסיבה מיוחדת - סתם רציתי להביע הערכה ;D
פורסם 2006 בפברואר 319 שנים מחבר ואללה, אז אפשר צלע?חכה רגע, אני אקמפל לך אחת (בשביל להשאר בנושא המקורי):#include<stdio.h>#include<food.h>int main(void){printf("BIG RIB"); return 0; }
פורסם 2006 בפברואר 319 שנים התוכנית לא עוברת אצלי קומפילציה. המהדר צועק שהוא לא מזהה את "food.h". Dym, הנושא כבר נענה ונסגר, למה להמשיך לטחון? אם אתה רוצה להישאר בנושא, אז אתה יכול לשכתב את הקוד לפונקציות נפרדות שעובדות עם מצביעים. מלבד זאת, אין טעם להמשיך את הת'רד.
פורסם 2006 בפברואר 419 שנים מחבר התוכנית לא עוברת אצלי קומפילציה. המהדר צועק שהוא לא מזהה את "food.h". Dym, הנושא כבר נענה ונסגר, למה להמשיך לטחון? אם אתה רוצה להישאר בנושא, אז אתה יכול לשכתב את הקוד לפונקציות נפרדות שעובדות עם מצביעים. מלבד זאת, אין טעם להמשיך את הת'רד. צודק - אין טעם. סתם לא רציתי להשאיר את הבן-אדם רעב...
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.