91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

三種方法實現一個函數,可以左旋字符串中的k個字符

發布時間:2020-07-22 13:27:13 來源:網絡 閱讀:267 作者:夢T醒 欄目:編程語言

例如:abcd左旋一個字符得到bcda,abcd左旋兩個字符得到cdab
1.數組下標法

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

void left_handed(char *str, int k)
{
    int i;
    int count = 0;
    char temp;
    while (count < k)
    {
        temp = str[0];
        for (i = 0; i < strlen(str)-1; i++)
        {
            str[i] = str[i + 1];//所有字符左移一位
        }
        count++;
        str[strlen(str) - 1] = temp;
    }
}
int main()
{
    int k=0;
    char str[] = "abcdef";
    printf("輸入需要左旋多少個字符:\n");
    scanf("%d",&k);
    left_handed(str,k);
    printf("%s",&str);
    return 0;
}

2.指針法

#include<stdio.h>

void left_move(char *str, int k)
{
    while (k--)//相當于k!=0
    {
        char *cur = str;//定義一個指針,存儲字符串首地址
        char tmp=*cur;
        while ((*(cur+1)) != '\0')
        {
            *cur = *(cur + 1);//字符串左移一位
            cur++;
        }
        *(cur) = tmp;
    }
}
int main()
{
    char str[] = "abcd";
    int k = 0;
    printf("請輸入左移位數:\n");
    scanf("%d",&k);
    left_move(str, k);
    printf("%s",str);
    return 0;
}

3.指針==》逆序法

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

void Reverse(char *left, char *right)//逆序函數
{
    while (left < right)
    {
        char tmp = *left;
        *left = *right;
        *right = tmp;
        left++;
        right--;
    }
}
void left_move(char *str, int k, int len)//左旋函數
{
    char *left = str;
    char *right = str+len - 1;
    if (k<0 || k>len)
    {
        printf("不合法!\n");
    }
    else
    {
        Reverse(left, str+k-1);//地址,需要逆序的左右位置
        Reverse(str+k , right);
        Reverse(left, right);
    }
}
int main()
{
    int k;
    printf("請輸入左移位數:\n");
    scanf("%d",&k);
    char str[] = "abcd";
    int len = strlen(str);
    left_move(str,k,len);
    printf("%s",str);
    return 0;
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

怀来县| 霍林郭勒市| 安康市| 鄂温| 廊坊市| 伊春市| 舞阳县| 中山市| 新津县| 平邑县| 青冈县| 乐平市| 黔西| 左贡县| 清流县| 策勒县| 唐河县| 抚顺县| 陆川县| 右玉县| 临武县| 克什克腾旗| 曲松县| 沁源县| 偏关县| 洪雅县| 福海县| 中超| 民和| 吉木萨尔县| 赣州市| 汉寿县| 高青县| 延吉市| 福州市| 华安县| 根河市| 巴彦淖尔市| 柳河县| 中宁县| 海南省|