程式例題~G:\我的雲端硬碟\c語言練習題\1資料型態宣告\7字串陣列設初值輸出.cpp
//字串設初值和輸出,字串最後一格的值自動設為\0, 作為結束代號
一般來說 scanf 遇到空白、\t、\n 就會自動中斷:
scanf("%s",str); // 輸入「hello world」
printf("%s",str); // 輸出「hello」
scanf 可以自定欲接收的字元,改一下就可以接收空白等字元:
scanf("%[^\n]",str); // 接收除了 \n 以外的所有字元
printf("%s",str); // 輸出完整的「hello world」
#include <stdio.h>
#include<string.h>
int main() {
char stra[5]="abg0"; //在dev c++ 需多給1格,在repl 不用
char strb[5]={'a','b',' ','0','h'}; //但如此給法,不用多給1格
char strc[5]={0},strd[5]={},stre[5]="\0"; //給空的初值
char strf[5]; //未給初值,偶有印暫存值
int leng=strlen(stra); //string.h 中的函式 strlen計算字串長度
int lengstra=sizeof(stra) / sizeof(stra[0]);
printf("stra length=%d\n",lengstra);
printf("stra length=%d\n",leng);
for(int i = 0; i < 5; i++) {
printf("stra[%d]=%c\t",i,stra[i]);
printf("strb[%d]=%c\t",i,strb[i]);
printf("strc[%d]=%c\t",i,strc[i]);
printf("strd[%d]=%c\t",i,strd[i]);
printf("stre[%d]=%c\t",i,stre[i]);
printf("strf[%d]=%c\n",i,strf[i]);
}
printf("\n");
printf("stra=%s\t",stra);
printf("strb=%s\t",strb);
printf("strc=%s\t",strc);
printf("strd=%s\t",strd);
printf("stre=%s\t",stre);
printf("strf=%s\n",strf);
}
測試結果~
stra length=5
stra length=4
stra[0]=a strb[0]=a strc[0]= strd[0]= stre[0]= strf[0]=
stra[1]=b strb[1]=b strc[1]= strd[1]= stre[1]= strf[1]=
stra[2]=g strb[2]= strc[2]= strd[2]= stre[2]= strf[2]=
stra[3]=0 strb[3]=0 strc[3]= strd[3]= stre[3]= strf[3]=
stra[4]= strb[4]=h strc[4]= strd[4]= stre[4]= strf[4]=
stra=abg0 strb=ab 0h strc= strd= stre= strf=
2、字元陣列長度和字串內容長度
程式例題~G:\我的雲端硬碟\c語言練習題\1資料型態宣告\8字串陣列長度和字串內容長度.cpp
//int數字為4bytes, 陣列放5個int 5*4= #include <stdio.h>
#include<stdio.h>
#include<string.h>
int main(void) {
char stra[3]={"ab"};
int lengstra=sizeof(stra) / sizeof(stra[0]);
printf("sizeof stra length=%d\n",lengstra); //陣列全部除以4bytes=陣列長度
printf("函式strlen計算stra length=%d\n",strlen(stra));
for(int i = 0; i < lengstra; i++) {
printf("stra[%d]=%c\t",i,stra[i]);
printf("stra[%d]=%d\n",i,stra[i]);
}
printf("\n");
printf("stra=%s\n",stra);
printf("\n");
}
測試結果~
sizeof stra length=3
函式strlen計算stra length=2
stra[0]=a stra[0]=97
stra[1]=b stra[1]=98
stra[2]= stra[2]=0
stra=ab
3、串接2個字串
程式例題~G:\我的雲端硬碟\c語言練習題\1資料型態宣告\9字串輸入連結2個字串.cpp
//輸入字串,連結2個字串
#include <stdio.h>
//#include<stdlib.h>
#include<string.h>
int main(){
int i=0;
char stra[7]="Hello ",strb[10];
printf("what is your name?=");
scanf("%s",strb); //only input 10 char
strncat(stra,strb,10); //接受10個字元到stra後面
printf("%s\n",stra);
}
測試結果~
what is your name?=pig
Hello pig
沒有留言:
張貼留言