字符串循環(huán)左移 C語言,移動字符串?
C語言,移動字符串?C語言字符串移動輸入一個字符串和一個非負整數(shù)n,要求字符串循環(huán)向左移動n次。輸入格式:輸入長度不超過100個字符的非空字符串,第一行以回車結(jié)束;第二行給出非負整數(shù)n。輸出格式:在一
C語言,移動字符串?
C語言字符串移動
輸入一個字符串和一個非負整數(shù)n,要求字符串循環(huán)向左移動n次。
輸入格式:
輸入長度不超過100個字符的非空字符串,第一行以回車結(jié)束;第二行給出非負整數(shù)n。
輸出格式:
在一行中左移n次后輸出字符串。
輸入示例:
你好,世界
!2
輸出示例:
世界!他
在PTA上運行以下代碼,邊界測試的結(jié)果表明運行時有錯誤
#include<stdio。H>
#包含<string。H>
int main()
{
char a[100],change
int i,J,CNT,n
]獲取(a)
scanf(%d“,&;amp;n)
CNT=strlen(a)
(J=0j<nj)
{
change=a[0
]for(i=0i<cnt-1i)
{
a[i]=a[i 1
]}
a[i]=change
}
puts(a)
return 0
}
int strlshif1(char*s,int n){int len strlen n(s)n=n%lenreverse(s,0,n-1)reverse(s,0,len-1)return 0}
如何將一個字符串按bit位左移(右移)N位?
1. 左移運算符(Shift left operator)(<<):將二進制形式的所有數(shù)字向左移動相應(yīng)的數(shù)字,將高位移出(丟棄),并用零填充低位。格式:數(shù)字需要移位的次數(shù),例如:3<<;LT2 3轉(zhuǎn)換為二進制0011,所有數(shù)字左移2位,空格用0填充得到1100,即十進制數(shù)12。2右移運算符(>>):根據(jù)二進制將所有數(shù)字向右移動,移動相應(yīng)的移位數(shù)字,將低位數(shù)字移出(放棄),并用符號數(shù)字填充高位數(shù)字(0表示正數(shù),1表示負數(shù))。格式:要移動的次數(shù)。例如:11>>;2,11的二進制是1011,所有數(shù)字都向右移動2個位置。因為11是一個正數(shù),高位被0補充得到0010,這是一個十進制2。