c:strchr()问题:返回错误的值?

时间:2014-03-25 00:38:39

标签: c

我正在尝试在strchr中执行一些代码工作但不幸的是我使用strchr会导致执行错误,在某些情况下strchr似乎返回了错误的值, 这是代码:

int main(){

    char* s="1/2/3/4/8/9/7";
    char r[100];
    char chunk2[100];
    int i,jpos;

    for(i=0;i<5;i++){
    strcpy(r, strrev(s));
    jpos = strchr(r, '/')-r;
    strncpy(chunk2, r, jpos);
    strcpy(r, strrev(chunk2));
    }
}

怎么了?以及如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:3)

是一个字符串文字,strrev()尝试更改它,你不能对静态数据这样做。

使用字符数组

char s[]="1/2/3/4/8/9/7";