短程序,小错误,帮忙看一眼。
[color=#00FF00]t1.c: In function ‘strchr9’:
t1.c:9:4: warning: return discards qualifiers from pointer target type
1 #include<stdio.h>
2
3 char *
4 strchr9( const char *str, int ch )
5 {
6 while( *str != '\0' )
7 {
8 if( *str == ch )
9 return str;
10 str++;
11 }
12 return NULL;
13 }
14
15 int main()
16 {
17 char *str = "abcde";
18 int a = 'd';
19 printf( "%d\n", strchr9( str, a )- str);
20 }
[/color]
[解决办法]
const char *strchr9( const char *str, int ch )
#include<stdio.h>
char* strchr9(const char* str, int ch)
{
while(*str != '\0')
{
if(*str == ch)
return (char*)str;
str++;
}
return NULL;
}
int main(int argc, char* argv[])
{
char* str = "abcde";
int a = 'd';
printf("%d\n", strchr9(str, a) - str);
return 0;
}