本帖最后由 jackz007 于 2021-1-6 17:12 编辑
字符串末尾没有结束标志 for(i = 0 ; i < 19 ; i ++) // i 只能小于 19,不可以等于 20,因为下标索引 19 的位置必须预留出来用于保存字符串结束标志字符 '\0'
{
scanf("%c" , & a[i]) ;
if(a[i] == '\n') break ;
}
a[i] = '\0' ; // 添加此句
下面是我写的代码,谨供楼主参考#include <stdio.h>
main(void)
{
char s[256] ;
int n ;
for(n = 0 ; n < 255 && (s[n] = getchar()) != '\n'; n ++) {
if(s[n] >= 'A' && s[n] <= 'Z' || s[n] >= 'a' && s[n] <= 'z') {
s[n] += 4 ;
if(s[n] > 'Z' && s[n] < 'Z' + 5 || s[n] > 'z' && s[n] < 'z' + 5) s[n] -= 26 ;
}
}
s[n] = '\0' ;
printf("%s\n" , s) ;
}
|