代码一:
#include <stdio.h>
#include <string.h>
char *my_strnchr( const char *str, int ch, int which )
{
int n = 0;
do
{
if( *str == '\0')
{
return 0;
}
if( *str++ == ch )
n++;
}while( n != which );
return str - 1;
}
int main()
{
printf( "%s\n", my_strnchr( "kkm", 'k', 1) );
return 0;
}
编译报错:gtk.c:17:5: warning: return discards 'const' qualifier from pointer target type [enabled by default]
代码二:
#include <stdio.h>
#include <string.h>
char *my_strnchr( const char *str, int ch, int which )
{
int n = 0;
do
{
if( *str == '\0')
{
return 0;
}
if( *str++ == ch )
n++;
}while( n != which );
return (char*)str - 1;//修改的地方
}
int main()
{
printf( "%s\n", my_strnchr( "kkm", 'k', 1) );
return 0;
}
输出完成 (耗时 0 秒) - 正常终止
参考连接:
https://blog.youkuaiyun.com/u012780337/article/details/53967143