码迷,mamicode.com
首页 > 其他好文 > 详细

字符串旋转问题

时间:2019-01-10 01:09:09      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:anti   结束   ISE   style   return   nbsp   str   循环控制   strcmp   

1.字符串左旋转k个字符,

思想:很简单,写两个for循环,外层是控制旋转的次数,内层就是旋转,每次将第一个元素赋给临时变量,在内层循环中将后一个元素赋给前一个元素,内层循环结束,将临时变量赋给字符串最后一元素的位置。下面详见代码

void anticlockwise(char ch[], int k){
    if (k > strlen(ch) || k == 0){
        printf("输入错误:\n");
        return;
    }
    for (int i = 0; i < k; i++){
        char tmp = ch[0];
        for (int j = 0; j < strlen(ch) - 1; j++){
            ch[j] = ch[j + 1];
        }
        ch[strlen(ch) - 1] = tmp;
    }
    printf("%s\n", ch);
}

2.判断字符串旋转后是否和另一个元素是否相等,相等返回1,否则返回0

思想:和上面所述问题思想大概一致,这次的外层循环控制条件是字符串1的长度,内层循环结束后判断旋转后的结果是否和字符串2相等,如果相等直接返回1,不相等继续遍历,当吧外层循环遍历完后,木有相等的,那么直接返回0,详见代码

int anticlockwiseIsEqual(char ch1[], char ch2[]){
    for (int i = 0; i < strlen(ch1); i++){
        char tmp = ch1[0];
        for (int j = 0; j < strlen(ch1) - 1; j++){
            ch1[j] = ch1[j + 1];
        }
        ch1[strlen(ch1) - 1] = tmp;
        if (strcmp(ch1, ch2) == 0){
            return 1;
        }
    }
    return 0;
}

 

字符串旋转问题

标签:anti   结束   ISE   style   return   nbsp   str   循环控制   strcmp   

原文地址:https://www.cnblogs.com/duy666/p/10247639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!