字符串右移

摘要:
编写一个函数,要求输入一个字符串和要移动的位数n,使得该字符串能向右移动n位,输出移动后的字符串。思路:把字符串变成两部分,交换位置,实际操作先把后n个字符保存起来,将strlen-n个字符往后移动n个位置,最后把n个字符放在前面(C语言)voidright_move{inti;//临时分配一块内存,大小根据移动的位数决定char*temp=malloc;intlen=strlen;//给temp[]赋值为str[]后n位fortemp[i]=str[len-n+i];//把字符串的前len-n右移n位forstr[len-i-1]=str[len-i-1-n];//字符串前n为赋值forstr[i]=temp[i];}全部代码(C语言)#include#include#includevoidright_move;intmain{intn;charstr[30];//输入字符串stringgets;//输入需要移动的n位scanf;puts;right;puts;}voidright_move{inti;char*temp=malloc;intlen=strlen;fortemp=str[len-n+i];forstr[len-i-1]=str[len-i-1-n];forstr[i]=temp[i];}

编写一个函数,要求输入一个字符串和要移动的位数n,使得该字符串能向右移动n位,输出移动后的字符串。例如:tomloveslily移动2位得lytomlovesli。

思路:把字符串变成两部分,交换位置,实际操作先把后n个字符保存起来,将strlen-n个字符往后移动n个位置,最后把n个字符放在前面(C语言)

void right_move(char* str,intn)
{
    inti;
    //临时分配一块内存,大小根据移动的位数决定
    char *temp= (char *)malloc(n*sizeof(char));
    int len =strlen(str);
    
    //给temp[]赋值为str[]后n位
    for(i=0;i<n;i++)
        temp[i]=str[len-n+i];
        
    //把字符串的前len-n右移n位
    for(i=0;i<len-n;i++)
        str[len-i-1]=str[len-i-1-n];
        
    //字符串前n为赋值
    for(i=0;i<n;i++)
        str[i]=temp[i];
}

全部代码(C语言)

#include<stdio.h>#include<stdlib.h>#include<string.h>

void right_move(char *,int);

int main(void)
{
    intn;
    char str[30];
    //输入字符串string
gets(str);
    //输入需要移动的n位
    scanf("%d",&n);
    puts(str);
    right(str,n);
    puts(str);
}

void right_move(char * str,intn)
{
    inti;
    char * temp = (char*)malloc(n*sizeof(char));
    int len=strlen(str);
    
    for(i=0;i<n;i++)
        temp = str[len-n+i];
        
    for(i=0;i<len-n;i++)
        str[len-i-1]=str[len-i-1-n];
        
    for(i=0;i<n;i++)
        str[i]=temp[i];
}

免责声明:文章转载自《字符串右移》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JAVA设计模式之【职责链模式】MySQL【Delete误操作】回滚下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[转]使用 LDAP 组或角色限制访问,包含部分单点登录SSO说明

参考:http://www-01.ibm.com/support/knowledgecenter/api/content/SSEP7J_10.2.2/com.ibm.swg.ba.cognos.crn_arch.10.2.2.doc/c_restrict_access_using_ldap_groups_or_roles.html#Restrict_Acc...

如何使用PHP生成图片

79 /** 80 * 从图片文件创建Image资源 81 * @param $file 图片文件,支持url 82 * @return bool|resource 成功返回图片image资源,失败返回false 83 */ 84 function createImageFromFile($file){ 85 if(pr...

用C#中的键值对遍历数组或字符串元素的次数

代码如下: string strs = "ad6la4ss42d6s3"; Dictionary<char, int> dic = new Dictionary<char, int>(); foreach(var item in strs) {...

【转】二维码生成原理

原文链接:QR码生成原理-QR Code(ISO 18004)编码方式 一、什么是QR码 QR码属于矩阵式二维码中的一个种类,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化。QR码的样子其实在很多场合已经能够被看到了,我这还是贴个图展示一下: 这个图如果被正确解码,应该看到我的名字和邮箱。 二、QR码的特点 说到QR码的特点: 一是高速读取...

吴恩达老师深度学习课程第四周编程作业--一步步搭建多层神经网络以及应用

本文是吴恩达老师深度学习第四周的编程作业,我是参考的文章https://blog.csdn.net/u013733326/article/details/79767169完成的。 首先还是作业要求,此次的作业要求还是和第二周作业要求一样,搭建一个神经网络来识别图片是否是猫。只不过本次作业要求搭建两个网络,一个是两层的,一个是多层的,多层的网络层数可以自定。...

关于shell的单引号和双引号转义 以及特殊符号相关

关于shell的单引号和双引号转义 以及特殊符号相关 20140603 Chenxin shell转义,单引号与双引号,反撇号 1、转义 单引号和双引号都能关闭shell对特殊字符的处理。 不同的是,双引号没有单引号严格,单引号关闭所有有特殊作用的字符,而双引号只要求shell忽略大多数,具体的说,就是以下符号在双引号内仍起效果: ①美元符号 $ 在双引号...