我正努力想办法解析一个字符串,并通过使其大写来“突出显示”结果中的搜索项。
我试过使用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/

10-11 11:04