十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
**************************************************
创新互联建站专注于新兴企业网站建设,成都响应式网站建设公司,成都商城网站开发。新兴网站建设公司,为新兴等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
请输入一个字符串 : 123abc
向左移动位数 : 2
移动后 : 3abc12
Press any key to continue
************************************************
#include stdio.h
int mystrlen(char *s) {
int len = 0;
char *p = s;
while(*p++) len++;
return len;
}
void movech(char *s,int m) {
int i,len;
char ch;
len = mystrlen(s);
while(m--) {
ch = *s;
for(i = 1;i len;i++) s[i - 1] = s[i];
s[len - 1] = ch;
}
}
int main() {
char s[1024];
int m;
printf("请输入一个字符串 : ");
gets(s);
printf("向左移动位数 : ");
scanf("%d",m);
movech(s,m);
printf("移动后 : %s\n\n",s);
return 0;
}
#include stdio.h
#include string.h
#include stdlib.h
#include ctype.h
void Sort(char *s,int n)
{
int i,j;
char c;
for(i=0;in;i++)
for(j=0;jn-1;j++)
if(s[j]s[j+1])
{
c=s[j];
s[j]=s[j+1];
s[j+1]=c;
}
}
void Exch(char *s,int n)
{
int m=(n+1)/2,i;
char c;
for(i=0;in/2;i++)
{
c=s[i];
s[i]=s[i+m];
s[i+m]=c;
}
}
int main()
{
char s[1005];
int m,n;
while(~scanf("%s",s))
{
n=strlen(s);
m=(n+1)/2;
Sort(s+m,n-m);
Exch(s,n);
printf("%s\n",s);
}
return 0;
}
函数功能:将输入字符串 src循环右移n位 result为输出结果
要求:以效率最高的方式实现
示例:
“abcde” --2-- "deabc"
"abcde"--8--"cdeab"
void right_shift_r(const char* src,char* result,unsigned int n)
{
unsigned int len = strlen(src);
int i=0;
for(i=0;ilen;i++)
{
result[i] = src[i+n]%len;
}
}
#include
stdio.h
#include
string.h
#define
N
81
void
readwriteDAT();
void
chg(char
*s)
{
int
i,t,j=0,n=strlen(s);/*i循环控制变量,j用于数组中移动元素的位置*/
for
(i=0;i1;i++)/*因为要把最后一个移到最后,所以只需i1即可*/
{
t=s[0];/*把数组中第一个元素先保存给临时变量t*/
for
(j=0;jn-1;j++)/*下面循环的功能是将除第一个元素外的(即s[0])字符串中的字符循环左移一个位置*/
s[j]=s[j+1];
s[j]=t;/*最后将第一个字符,给最后一个字符*/
}
}
main()
{
char
a[
N
]
;
printf("Enter
a
string
:
");
gets(a);
printf("The
original
string
is
:
");
puts(a);
chg(a);
printf("The
string
after
modified
:
");
puts(a);
}
注意:本程序如不是在二级C模拟系统下写代码,在验证时请以上面代码为准!