我正努力想办法解析一个字符串,并通过使其大写来“突出显示”结果中的搜索项。
我试过使用strstr,移动一个指针并“吹捧”字符,但没有效果。
char * highlight( char *str, char *searchstr ) {
char *pnt=str;
int i;
pnt=strstr(str,searchstr);
while(pnt){
printf("ststr retured: %s\n", pnt);
for(i=0;i<strlen(searchstr);i++) {
printf("%c",toupper(pnt[i]));
}
printf("\n");
pnt=pnt+strlen(searchstr);
pnt=strstr(pnt,searchstr);
}
return str;
}
任何建议都非常感谢。
最佳答案
因为肖特提到了每一件事:
#include <string.h>
char *highlight(char *str, char *searchstr) {
char *pnt = str;
while (pnt = strstr(pnt, searchstr)) {
char *tmp = searchstr;
while(*(tmp++)) { *pnt = toupper(*pnt); pnt++; }
}
return str;
}
int main() {
char s[] = "hello world follow llollo";
char search[] = "llo";
puts(highlight(s, search));
return 0;
}
输出为:
$ ./a.out
heLLO world foLLOw LLOLLO
关于c - 使字符串C中的特定单词大写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3940885/