“分段错误(核心已转储)”,输入没有指针的字符串

时间:2019-01-07 06:37:56

标签: c string function while-loop letter

我正在尝试编写一个函数,该函数接受一个任意字符串,并将所有字母更改为字母表中的下一个字母(例如,“ John”改为“ Kpio”)。如果定义字符串str(例如char str [] =“ John”),则我的函数有效,但是当我将其保留为任意值时,则无效。相反,我得到了一个分段错误(核心转储)错误。

我尝试通过在所有内容上添加* str来代替使用指针,但这没有用,我宁愿该解决方案也不使用指针,因为我仍然不熟悉它们。

#include <stdio.h>
/*declare function*/
void letter( char str[] ) {
int i = 0;
while ( str[ i ] != 0 ) {
    str[i] += 1;
    printf("%c", str[i]);
    i++;
}
}
/*call function with input "John"*/
int main( void ) { 
letter( "John" );
return 0;
}

0 个答案:

没有答案