當前位置:首頁 » 編程語言 » c語言strcpy右補空格
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言strcpy右補空格

發布時間: 2022-08-10 15:44:37

1. c語言 如何字元串數組中插入空格,要求位置是指定位置

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

intinsertCh(charstr[],charch,intpos){
inti,len=strlen(str);
if(pos<1||pos>len)return0;
for(i=len+1;i>=pos;--i)
str[i]=str[i-1];
str[i]=ch;
return1;
}

intmain(){
charline[100]="Iamastdent.";
intpos=10,ch='u';
if(insertCh(line,ch,pos))printf("%s ",line);
elseprintf("插入位置無效! ");
return0;
}

2. C語言課程設計題目

/*13. book.c源程序*/
#include <dos.h>
#include <bios.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define LEFT 0x4b00 /*左*/
#define RIGHT 0x4d00 /*右*/
#define DOWN 0x5000 /*下*/
#define UP 0x4800 /*上*/
#define SPACE 0x3920 /*空格*/
#define ESC 0x011b /* ESC鍵*/
#define ENTER 0x1c0d /*回車鍵*/
#define Backspace 0xe08 /*擦除鍵*/
#define ALT_B 12288 /*組合鍵ALT_B */
#define ALT_M 12800/*組合鍵ALT_M */
#define ALT_H 8960/*組合鍵ALT_H */
int key;/*按鍵變數*/
int textx,texty;/*游標坐標,x行,y列*/
struct menustruct/*菜單用的結構體*/
{
char name[10];/*主菜單名*/
char str[10][20];/*選項*/
int n;/*選項數*/
}ml[3];/*使用了3個,可根據需要增刪*/
typedef struct BookList/*書的結構體*/
{
char num[20];/*圖書編號*/
char name[20];/*書名*/
int price;/*書的價格*/
char person[20];/*借閱人*/
int yes;/*判斷書是否存在或者已經借出,1存在,0借出*/
struct BookList *next;
}Book;
typedef struct MemberList/*會員的結構體*/
{
char name[20];/*會員的姓名*/
char sex[2];/*會員的性別*/
int age;/*會員的年齡*/
struct MemberList *next;
}Member;
char save[4096];/*保存文本區域空間*/
/*char sav1[4096];*/
char c[4096];/*清屏專用空間*/
int i,j;/*常用變數*/
void Menu();/*初始化界面*/
void Selectitem();/*定義菜單*/
void DrawSelectitem();/*顯示主菜單*/
void BlackText(int x,int y,char *z);/*選中菜單*/
void RedText(int x,int y,char *z);/*正常菜單*/
void Run();/*具體操作過程*/
void DrawMl(int n);/*顯示下拉菜單*/
void MoveMl(int n,int x);/*菜單選項的控制*/
void Enter(int m,int n);/*菜單選項的具體功能*/
void BookAdd();/*添加圖書*/
void BookConsult();/*圖書查詢*/
void BookDel();/*刪除圖書資料*/
void BookBorrow();/*借書*/
void BookReturn(); /*還書*/
void MemberAdd(); /*增加會員*/
void MemberConsult();/*查詢會員*/
void MemberDel(); /*刪除會員*/
void MemberBook(); /*查詢會員借書信息*/
void Help(); /*幫助*/
void Ver(); /*版本信息*/
void ClrScr();/*自定義清屏函數*/
void DrawFrame(int left,int up,int right,int down,int textcolor,int backgroundcolor);/*畫邊框*/
/***主函數****/
void main(void)
{
Menu();/*初始化界面*/
Run();/*具體操作過程*/
}
/*初始化界面*/
void Menu()
{
system("cls"); /*調用系統的清屏命令*/
textbackground(BLUE);/*將背景設置為藍色*/
window(1,1,25,80);
clrscr();
textx=3;/*游標初始化位置*/
texty=2;
gotoxy(1,2);
printf("%c",218);/*畫左上角*/
for(i=0;i<78;i++)
printf("%c",196); /*畫水平直線*/
printf("%c",191);/*畫右上角*/
for(i=3;i<=23;i++)
{
gotoxy(1,i);
printf("%c",179); /*畫垂直線*/
gotoxy(80,i);
printf("%c",179);
}
printf("%c",192); /*畫左下角*/
for(i=0;i<78;i++)
printf("%c",196);
printf("%c",217); /*畫右下角*/
gotoxy(1,1);
textcolor(7); /*設置灰色*/
for(i=0;i<80;i++)
cprintf("%c",219);/*用符號實現畫主菜單的灰色背景區*/
Selectitem(); /*調用選項函數*/
DrawSelectitem(); /*畫選項*/
gettext(2,3,78,23,c); /*保存當前文本區域*/
}
/*定義菜單*/
void Selectitem()
{
strcpy(ml[0].name,"Book");/*下面的具體選項補空格是為了各菜單黑色背景相同*/
strcpy(ml[0].str[0],"Add ");/*添加圖書*/
strcpy(ml[0].str[1],"Consult ");/*查詢圖書*/
strcpy(ml[0].str[2],"Del ");/*刪除圖書資料*/
strcpy(ml[0].str[3],"Borrow ");/*借書*/
strcpy(ml[0].str[4],"Return ");/*還書*/
strcpy(ml[0].str[5],"Exit ");/*退出系統*/
ml[0].n=6; /*保存菜單的項數*/
strcpy(ml[1].name,"Member");
strcpy(ml[1].str[0],"Add ");/*添加新會員*/
strcpy(ml[1].str[1],"Consult ");/*查詢會員資料*/
strcpy(ml[1].str[2],"Del ");/*刪除會員資料*/
strcpy(ml[1].str[3],"Member&book ");
ml[1].n=4;
strcpy(ml[2].name,"Help");/*系統幫助*/
strcpy(ml[2].str[0],"This System ");
strcpy(ml[2].str[1],"Ver ");
ml[2].n=2;
}
/*顯示主單名*/
void DrawSelectitem()
{
for(i=0;i<3;i++)
RedText(i,1,ml[i].name); /*顯示主菜單名,且首字母為紅色*/
}
/*正常顯示菜單*/
void RedText(int x,int y,char *z)
{
textbackground(7); /*設置背景顏色為淺灰色*/
gotoxy(3+x*20,y);
for(j=0;z[j];j++)
{
if(j==0)
textcolor(RED);/*第一個字母顯示紅色*/
else
textcolor(BLACK); /*設置黑色*/
cprintf("%c",z[j]); /*輸出菜單名*/
}
}
/*顯示選中菜單*/
void BlackText(int x,int y,char *z)
{
textbackground(0); /*設置背景顏色為黑色*/
textcolor(15); /*設置文本顏色為白色*/
gotoxy(3+20*x,y);/*定位坐標*/
cputs(z); /*輸出菜單名字元串*/
}
/*按鍵操作過程*/
void Run()
{
while(1)
{
gotoxy(texty,textx);
key=bioskey(0);/*接收按鍵*/
switch(key)
{
case ALT_B:
case ESC: DrawMl(0);break; /*顯示下拉菜單1*/
case ALT_M: DrawMl(1);break;/*顯示下拉菜單2*/
case ALT_H: DrawMl(2);/*顯示下拉菜單3*/
case UP: /*上游標鍵的操作控制*/
{
if(textx==3)
textx=23;
textx--;
gotoxy(texty,textx);
}break;
case DOWN: /*下游標鍵的操作控制*/
{
if(textx==23)
textx=3;
textx++;
gotoxy(texty,textx);
}break;
case LEFT: /*左游標鍵的操作控制*/
{
if(texty==2)
texty=79;
texty--;
gotoxy(texty,textx);
}break;
case Backspace: /*擦除鍵的設置*/
{
if(texty==2&&textx==3)
continue;
else
{
if(texty!=2)
texty--; /*擦除鍵的細節問題,先擦去東西,然後游標還要往後退一格*/
else
if(texty==2)
{
texty=78;
textx--;
}
gotoxy(texty,textx);
printf(" ");
gotoxy(texty,textx);
}
}break;/*end case 0xe08*/
case RIGHT: /*右游標鍵的操作控制*/
{
if(texty==79)
texty=2;
texty++;
gotoxy(texty,textx);
}break;
case SPACE: /*空格鍵的操作*/
{
if(texty==79)
continue;
else
{
gotoxy(texty,textx); /*空格的細節操作*/
printf(" ");
texty++;
gotoxy(texty,textx);
}
}break;
case ENTER: /*回車的控制操作*/
{
if(textx==23)
continue;
textx++;
texty=2;
gotoxy(texty,textx);
}break;
default : /*非控制鍵的結果*/
{
if(texty==79&&textx==23)/*到達最後就不再輸出*/
continue;
else
if(texty==79&&textx!=23) /*到行的最後*/
{
textx++;
texty=2;
}
gotoxy(texty,textx);/*輸出結果*/
printf("%c",key);
if(texty==79) /*如果texty==79就不執行*/
continue;
else /*如果沒到行尾就繼續執行,使游標向前移動一位*/
texty++;
}
}
}/*大循環的大括弧*/
}
/*畫邊框函數*/
void DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor)
{
textbackground(bcolor); /*背景顏色*/
textcolor(bcolor); /*文本顏色*/
for(i=l;i<=r;i++) /*輸出背景區域*/
{
for(j=u;j<=d;j++)
{
gotoxy(i,j);
printf("%c",219); /*輸出背景字元*/
}
}
textcolor(tcolor);/*邊框顏色*/
for(i=u+1;i<d;i++) /*在背景區域內輸出邊框線*/
{
gotoxy(l,i);
cprintf("%c",179); /*垂直線*/
gotoxy(r,i);
cprintf("%c",179);
}
for(i=l+1;i<r;i++)
{
gotoxy(i,u);
cprintf("%c",196); /*水平線*/
gotoxy(i,d);
cprintf("%c",196);
}
gotoxy(l,u);
cprintf("%c",218);/*左上角*/
gotoxy(r,u);
cprintf("%c",191);/*右上角*/
gotoxy(l,d);
cprintf("%c",192);/*左下角*/
gotoxy(r,d);
cprintf("%c",217); /*右下角*/
/* gettext(l+1,u+1,r-1,d-1,save1);*//*保存邊框內區域*/
}
/*顯示具體下拉選擇項目*/
void DrawMl(int n)
{
gettext(1,1,80,25,save);/*保存被掩蓋的地方*/
BlackText(n,1,ml[n].name);/*反選顯示主菜單*/
DrawFrame(3+20*n-1,2,3+20*n+19,3+ml[n].n,0,7);/*下拉菜單的邊框*/
for(i=3;i<3+ml[n].n;i++)/*輸出所選菜單各選項*/
{
if(i==3)
BlackText(n,i,ml[n].str[i-3]);/*默認選中第一項*/
else
RedText(n,i,ml[n].str[i-3]);/*其餘各項首字元紅色顯示*/
}
gotoxy(79,1);
MoveMl(n,3);/*菜單選項的控制*/
}
/*菜單選項的控制,n決定水平項,x決定下拉的選項*/
void MoveMl(int n,int x)
{
int flag=1;
while(flag)
{
gotoxy(79,1);
key=bioskey(0);/*接收按鍵*/
gotoxy(79,1);
switch(key)
{
case ESC:/*退出循環*/
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
flag=0;
break;
case LEFT:/*移到左邊的選項*/
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
if(n==0)/*往左移動越界的話移到最後一個選項*/
DrawMl(2);
else
DrawMl(n-1);
flag=0;
break;
case RIGHT:/*移動右邊的選項*/
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
if(n==2)/*往右移動越界的話移到第一個選項*/
DrawMl(0);
else
DrawMl(n+1);
flag=0;
break;
case UP:/*具體選項往上移動*/
RedText(n,x,ml[n].str[x-3]);/*輸出紅色字體*/
if(x==3)/*移到最上面再按上鍵,就移到最下面*/
x=3+ml[n].n-1;
else
x--;/*移動到新的要顯示的內容*/
BlackText(n,x,ml[n].str[x-3]);/*輸出黑色字體*/
flag=1;
break;
case DOWN:/*具體選項往下移動*/
RedText(n,x,ml[n].str[x-3]);
if(x==(3+ml[n].n-1))/*移動到最底下再按下鍵就移到最上面*/
x=3;
else
x++;/*移動到新的要顯示的內容*/
BlackText(n,x,ml[n].str[x-3]);
flag=1;
break;
case ENTER:
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
Enter(n,x-3);/*菜單選項的具體功能*/
flag=0;
break;
}
gotoxy(79,1);
}
}
/*菜單選項的具體功能*/
void Enter(int m,int n)
{
switch(m)
{
case 0:switch(n) /*選擇了圖書菜單選項*/
{
case 0:BookAdd();break;/*添加圖書*/
case 1:BookConsult();break;/*圖書查詢*/
case 2:BookDel();break;/*刪除一本圖書資料*/
case 3:BookBorrow();break;/*借書*/
case 4:BookReturn();break;/*還書*/
case 5:exit(0);break;
} break;/*退出系統*/
case 1: switch(n) /*選擇了會員菜單選項*/
{
case 0: MemberAdd();break;/*添加會員*/
case 1: MemberConsult();break;/*會員查詢*/
case 2:MemberDel();break;/*刪除一個會員資料*/
case 3:MemberBook();/*查詢某個會員所借圖書情況*/
}break;
case 2:switch(n) /*選擇了幫助菜單選項*/
{
case 0:Help();break;
case 1:Ver();
}
}/*結束外switch*/
}

3. C語言中strcpy的用法! 要舉例哦!簡單的哦!

下面是 strcpy() 函數的聲明:

char *strcpy(char *dest, const char *src)

參數:

1.dest-- 指向用於存儲復制內容的目標數組。

2.src-- 要復制的字元串。

實例:

#include <stdio.h>

#include <string.h>

int main (){

char str1[]="Sample string";

char str2[40]; char str3[40];

strcpy (str2,str1);

strcpy (str3," successful");

printf ("str1: %s str2: %s str3: %s ",str1,str2,str3);

return 0;}

(3)c語言strcpy右補空格擴展閱讀:

需要說明的是:

1、一個C語言源程序可以由一個或多個源文件組成。

2、每個源文件可由一個或多個函數組成。

3、一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。是整個程序的入口。

4、源程序中可以有預處理命令(包括include 命令,ifdef、ifndef命令、define命令),預處理命令通常應放在源文件或源程序的最前面。

5、每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。結構體、聯合體、枚舉型的聲明的「}」後要加「 ;」。

6、標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。

網路-c語言

4. C語言中,比如一個字元串長度是10,如果存儲長度不足10那麼在右邊補充空格,而且存儲內容不定長

char a[]={1,2,3,4};
printf("%-10s",a); // %10 表示輸出按照寬度為10輸出 不足10位補空格 」-「 表示字元串靠左對齊
//你也可以試一下 printf("%10s",a);

5. c語言中%-s和%s補空格的區別

-表示的是左對齊字元串,如輸出字元串似乎:ndk8那麼:
① %-10s 輸出的:ndk8空空空空空空
② %+10s 輸出的:空空空空空空ndk8
更多的可以關於printf的輸出格式可以看我的帖子"C語言視頻 VS2015:[10]printf":
http://jingyan..com/article/8ebacdf021253d49f65cd539.html
當然也可以按照帖子上的方式在msdn上進行查詢哦,
希望對你有用,我是ndk吧吧主,有問題可以ndk吧留言,謝謝!

6. c語言編程,有一個字元串,怎麼在每一個字元之間加一個空格求代碼。

#include<stdio.h>
#include<string.h>
#define MAX 100
void Insert(char s[]);
main()
{char string[MAX];
scanf("%s",string);
Insert(string);
printf("%s",string);
}
void Insert(char srcStr[])
{char strTemp[MAX];int i=0,j=0;
strcpy(strTemp,srcStr);
while(strTemp[j]!='\0')
{srcStr[i++]=strTemp[j];
j++;
srcStr[i++]=' ';
}
srcStr[i]='\0';
}

7. C語言strcpy的用法。

strcpy函數:

原型聲明:extern char *strcpy(char* dest, const char *src);

頭文件:#include

功能:把從src地址開始且含有NULL結束符的字元串復制到以dest開始的地址空間

說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字元串。

返回指向dest的指針。

使用實例:

#include;

char * strcpy(char * strDest,const char * strSrc)

{

char * strDestCopy=strDest;

if ((strDest==NULL)||(strSrc==NULL))

throw "Invalid argument";

while ((*strDest++=*strSrc++)!='\0');

return strDestCopy;

}

void main()

{

char a[20],c[]="i am teacher!";

try

{

strcpy(a,c);

}

catch(char* strInfo)

{

cout<

exit(-1);

}

cout<
}

2. strcat函數:

原型:

extern char *strcat(char *dest,char *src)

頭文件:

#include

在C++中,則存在於頭文件中。

功能:

把src所指字元串添加到dest結尾處(覆蓋dest結尾處的'\0')並添加'\0'。

說明:

src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字元串。

返回指向dest的指針。

舉例

// strcat.c

#include

#include

main()

{

char d[20]="Golden Global";

char *s=" View";

clrscr();

strcat(d,s);

printf("%s",d);

getchar();

return 0;

}

程序執行結果為:Golden Global View

8. C語言輸出附加格式說明字元怎麼用

C語言基本的輸出格式說明符如下:

%d十進制有符號整數

%u十進制無符號整數

%f浮點數

%s字元串

%c單個字元

%p指針的值

%e指數形式的浮點數

%x,%X無符號以十六進製表示的整數

%0無符號以八進製表示的整數

%g自動選擇合適的表示法


說明:

1、可以在"%"和字母之間插進數字表示最大場寬。例如:

%3d表示輸出3位整型數,不夠3位右對齊。

%9.2f表示輸出場寬為9的浮點數,其中小數位為2,整數位為6,小數點佔一位,不夠9位右對齊。

%8s表示輸出8個字元的字元串,不夠8個字元右對齊。

如果字元串的長度、或整型數位數超過說明的場寬,將按其實際長度輸出,

但對浮點數,若整數部分位數超過了說明的整數位寬度,將按實際整數位輸出;

若小數部分位數超過了說明的小數位寬度,則按說明的寬度以四捨五入輸出。


2、可以在"%"和字母之間加小寫字母l,表示輸出的是長型數。例如:

%ld表示輸出long整數

%lf表示輸出double浮點數


3、可以控制輸出左對齊或右對齊,即在"%"和字母之間加入一個"-"號可說明輸出為左對齊,否則為右對齊。例如:

%-7d表示輸出7位整數左對齊

%-10s表示輸出10個字元左對齊


使用方法可以參考如下程序:

#include<stdio.h>
#include<string.h>
intmain()
{
charc,s[20],*p;
inta=1234,*i;
floatf=3.141592653589;
doublex=0.12345678987654321;
p="Howdoyoudo";
strcpy(s,"Hello,Comrade");
*i=12;
c='x41';
printf("a=%d ",a);/*結果輸出十進制整數a=1234*/
printf("a=%6d ",a);/*結果輸出6位十進制數a=1234*/
printf("a=%06d ",a);/*結果輸出6位十進制數a=001234*/
printf("a=%2d ",a);/*a超過2位,按實際值輸出a=1234*/
printf("*i=%4d ",*i);/*輸出4位十進制整數*i=12*/
printf("*i=%-4d ",*i);/*輸出左對齊4位十進制整數*i=12*/
printf("i=%p ",i);/*輸出地址i=06E4*/
printf("f=%f ",f);/*輸出浮點數f=3.141593*/
printf("f=6.4f ",f);/*輸出6位其中小數點後4位的浮點數f=3.1416*/
printf("x=%lf ",x);/*輸出長浮點數x=0.123457*/
printf("x=%18.16lf ",x);/*輸出18位其中小數點後16位的長浮點數x=0.1234567898765432*/
printf("c=%c ",c);/*輸出字元c=A*/
printf("c=%x ",c);/*輸出字元的ASCII碼值c=41*/
printf("s[]=%s ",s);/*輸出數組字元串s[]=Hello,Comrade*/
printf("s[]=%6.9s ",s);/*輸出最多9個字元的字元串s[]=Hello,Co*/
printf("s=%p ",s);/*輸出數組字元串首字元地址s=FFBE*/
printf("*p=%s ",p);/*輸出指針字元串p=Howdoyoudo*/
printf("p=%p ",p);/*輸出指針的值p=0194*/
getch();
retunr0;
}

9. c語言strcpy()用法

1、strcpy函數是復制字元串的,接受兩個參數,一個是被復制字元串,另一個新字元串。具體的用法,首先打開編輯器新建一個c語言的程序文件,寫入頭文件和主函數: