c語言字元移動
⑴ c語言將字元串左移N個字元怎麼做
int strlshif1(char *s,int n){
int len = strlen(s);
n = n%len;
reverse(s,0,n-1);
reverse(s,n,len-1);
reverse(s,0,len-1);
return 0;
}
⑵ C語言題:將s串中所有字元前移一個位置,第一個字元移到最後。謝謝幫
將s串中所有字元前移一個位置,第一個字元移到最後:
intlen=strlen(s);
charc=s[len-1];
s[len-1]=s[0];
s[0]=c;
(2)c語言字元移動擴展閱讀
字元串中字母順序前移,其他字元順序後移。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char*fun(char*s)
{
inti,j,k,n;
char*p,*t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0;
k=0;
for(i=0;i<n;i++)
{
if(((s[i]>='A')&&(s[i]<='Z'))||((s[i]>='a')&&(s[i]<='z')))
{
t[j]=s[i];
j++;
}
else
{
p[k]=s[i];
k++;
}
}
for(i=0;i<k;i++)
t[j+i]=p[i];
t[j+k]=0;
returnt;
}
intmain()
{
chars[80];
printf("Pleaseinput:");
gets(s);
printf(" Theresultis:%s ",s);
printf(" Theresultis:%s ",fun(s));
getchar();
getchar();
return0;
}
⑶ 高手-C語言問題 -字元左移[100分]
#include
<stdio.h>
#include
<string.h>
#define
N
81
void
readwriteDAT();
void
chg(char
*s)
{
int
i,t,j=0,n=strlen(s);/*i循環控制變數,j用於數組中移動元素的位置*/
for
(i=0;i<1;i++)/*因為要把最後一個移到最後,所以只需i<1即可*/
{
t=s[0];/*把數組中第一個元素先保存給臨時變數t*/
for
(j=0;j<n-1;j++)/*下面循環的功能是將除第一個元素外的(即s[0])字元串中的字元循環左移一個位置*/
s[j]=s[j+1];
s[j]=t;/*最後將第一個字元,給最後一個字元*/
}
}
main()
{
char
a[
N
]
;
printf("Enter
a
string
:
");
gets(a);
printf("The
original
string
is
:
");
puts(a);
chg(a);
printf("The
string
after
modified
:
");
puts(a);
}
注意:本程序如不是在二級C模擬系統下寫代碼,在驗證時請以上面代碼為准!
⑷ 在c語言中怎麼讓字元串在屏幕中移動
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
char *str="HELLO C";
int i,j;
for(i=0;i<10;++i){
puts(str);
_sleep(500);
system("cls");
for(j=0;j<i;++j)
putchar(' ');
}
return 0;
}
如果 sleep不行 就這樣
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
char *str="HELLO C";
int i=0,j;
clock_t start,end;
start=clock();
while(1){
end=clock();
if(end-start==500){
system("cls");
start=end;
for(j=0;j<i;++j)
putchar(' ');
++i;
puts(str);
}
}
return 0;
}
⑸ c語言 如何將一個字元串的前n個字母後移至尾,其他的按順序前移
#include <stdio.h>
#include <string.h>//為了使用memcpy、strlen等字元串函數
#define N 5
int main()
{
char a[] = "abcdefghijk";
int i, j, m;
char b[N+1] = {'\0'};//b將成為一個中間儲存數組
memcpy(b, a, N);//把a的前N個字元復制到b中,存起來,以供後面使用
m = strlen(a)+1;//得出a數組的長度
for(i=0,j=N; j<m; i++,j++)
{
a[i] = a[j];//前N個字元之後的字元「按順序前移」
}
strcat(a, b);//把b追加到a後面,達成「前n個字母後移至尾」
printf(a);
return 0;
}
⑹ C語言字元串的移位運算
char str[]={china};
memcpy(str, str+3,sizeof(str));
簡單例子 不一定完全正確。
可以看下memcpy函數幫助,上面有示例
希望對你有點參考意義!
⑺ c語言輸入字元串,將其中的字元往後移動三位
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,l;
char w,a[512];
scanf("%s", a);
l=strlen(a);
for (i=0;i<3;i++)
{
w=a[l-1];
for (j=0;j<l-1;j++) a[l-1-j]=a[l-2-j];
a[0]=w;
}
printf("%s", a);
return 0;
}
(7)c語言字元移動擴展閱讀:
字元串在存儲上類似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。