循环左移以及定义指针出现编译正确运行结果不显示
定义的指针如果想把它当作数组使用的话必须要先让指针指向一个数组才可使用,否则直接定义指针当数组使用的话运行是没有结果的。 如
int a[10]={1,2,3};
int *p;
p=a;
printf("%d",p[10]);
此时的指针p才可以当做数组使用. 下面是循环左移的代码块
#include<stdio.h>
#include<string.h>
char *fun(char *str,int m)
{
char t[100]={0};
int j;
for(int i=0;i<m;i++)
{
t[i]=str[i];
}
for(j=0;str[j]!=0;j++)
{
str[j-m]=str[j];
}
int i=0;
printf("%d",j);
for(;str[j-m]!='\0';j++)
{
str[j-m]=t[i++];
}
return str;
}
void main()
{
char s[100];
int m;
printf("Please input string:");
scanf("%s",s);
printf("Enter m:");
scanf("%d",&m);
if (m > strlen(s))
{
printf("\nData error.\n");
return;
}
printf("Result is:%s\n",fun(s,m));
}
内容写的不好望理解,有问题欢迎在评论区留言。
|