debug#include<stdio.h> #include<string.h> int strlshift(char *s,int n) { int i,j=0; char ch[100]; for(i=strlen(s)-n-1;i<strlen(s);i++); ch[j++]=s[i]; for(i=0;i<strlen(s)-n-1;i++) ch[j++]=s[i]; for(i=0,j=0;i<strlen(s);i++) s[i]=ch[j]; } int main() { int n; char a[100]; gets(a); scanf("%d",&n); strlshift(a,n); puts(a); return 0; }
时间: 2023-06-21 17:11:00 浏览: 73
C语言课程设计-学生个人消费管理系统..doc
5星 · 资源好评率100%
这段代码有一个问题:
```
for(i=strlen(s)-n-1;i<strlen(s);i++);
ch[j++]=s[i];
```
应该改为:
```
for(i=strlen(s)-n;i<strlen(s);i++)
ch[j++]=s[i];
```
因为原来的写法中,for循环后面跟了一个分号,导致循环内的语句没有被执行,所以ch数组没有被正确赋值。
阅读全文