Xin chào ae. Tình hình là mình đang làm 1 bài tập tìm từ có độ dài lớn nhất trong 1 chuỗi cho trước và in từ đó ra màn hình.
Đây là code:
#include <stdio.h>
#include <string.h>
char * findLongestWord(char *);
int main()
{
char str[] = "Lorem ipsum dolor sit amet.";
printf("The longest word: %s\n", findLongestWord(str));
return 0;
}
char * findLongestWord(char *str)
{
char *s = strdup(str);
//const size_t size = strlen(s);
//char result[size];
char *result = NULL;
int length;
char *arr = strtok(s, " ,./?:;!");
//strcpy(result, arr);
result = strdup(arr);
length = strlen(arr);
while ((arr = strtok(NULL, " ,./?:;!")) != NULL) {
int _size = strlen(arr);
if (_size >= length) {
length = _size;
//strcpy(result, arr);
result = strdup(arr);
}
}
return result;
}
Trong quá trình code, mình thấy nếu ko dùng char * result
mà dùng char result[]
thì khi return kq về, hàm printf()
ko in ra đc ! Vì thế mình post lên đây để hỏi kỹ là hàm có kiểu trả về char * thì có return char[] được không?
Xin cảm ơn ae trước