c - Function To Match The Last Character Of A String -
so problem : write function strend(s,t), returns 1 if char t occurs @ end of string s, , 0 otherwise.
this code:
int strend(char*, char); int main() { int n = -1; char str1[6] = "hello", char1; printf("enter character: "); char1 = getchar(); n = strend(str1, char1); printf("n = %d", n); homecoming 0; } int strend(char* str1, char str2) { while(*str1 != '\0') { str1++; } if(*str1 == str2) { homecoming 1; } else { homecoming 0; } } however character matching not perform intended. mistake? thanks.
you're comparing character \0 string terminator.
int strend(char* str1, char str2) { if (*str1 == '\0') { homecoming 0; } while(*str1 != '\0') /* removed ; shouldn't there */ { str1++; } /* @ point, str1 pointing 0-terminator */ str1--; /* pointer points lastly character of string, not 0-terminator */ if(*str1 == str2) { homecoming 1; } else { homecoming 0; } } c pointers char
No comments:
Post a Comment