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

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),龍山企業(yè)網(wǎng)站建設(shè),龍山品牌網(wǎng)站建設(shè),網(wǎng)站定制,龍山網(wǎng)站建設(shè)報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,龍山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
#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("請輸入左移位數(shù):\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)//逆序函數(shù)
{
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
void left_move(char *str, int k, int len)//左旋函數(shù)
{
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("請輸入左移位數(shù):\n");
scanf("%d",&k);
char str[] = "abcd";
int len = strlen(str);
left_move(str,k,len);
printf("%s",str);
return 0;
}
當前名稱:三種方法實現(xiàn)一個函數(shù),可以左旋字符串中的k個字符
新聞來源:http://www.chinadenli.net/article32/jdhssc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站制作、網(wǎng)站設(shè)計公司、App設(shè)計、做網(wǎng)站、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)