Tuesday, 15 June 2010

c - Function To Match The Last Character Of A String -



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