#include
#include
#include
#include
#include
#include
intmain()
#include
#include
#include
#include
#include
#include
intmain()
memcpy與memmove與strcpy與strncpy
printf
("---------string.h常用函式測試---------\n");
char b1[
100]
="asd"
;char b2[
100]
;memcpy
(b2, b1,4)
;//目的和源儲存區不可重疊 b2 = b1 ,4
printf
("%s\n"
, b2)
;//asd
memmove
(b2, b2+1,
3);//目的和源儲存區可重疊
printf
("%s\n"
, b2)
;//sd
strcpy
(b2,
"asd");
//b2 = b1 b2必須足夠大, 只能永遠char 或 char*
printf
("%s\n"
, b2)
;//sd
char b3[
100]
;strncpy
(b3,
"asd",2
);printf
("%c%c%c\n"
, b3[0]
,b3[1]
,b3[2]
);//as?
strcat與strncat
// d串與s串必須以\0結尾, d串要夠長
// s串為const型別
char d[20]
="goldenglobal"
;const
char
*s =
"view"
;strcat
(d, s)
;printf
("%s"
, d)
;
// 預設在最後加\0
char d[20]
="goldenglobal"
;const
char
*s =
"view"
;strncat
(d, s,3)
;printf
("%s"
, d)
;
memcmp(可對結構體使用)
const
char
* s1 =
"123"
;const
char
* s2 =
"432"
;int r;
r =memcmp
(s2, s1,
strlen
(s1));
printf
("%d\n"
, r)
;// s2 - s1 大為1 同為0 小為-1
strncmp/strcmp(只可用於字串)
const
char
* s1 =
"123"
;const
char
* s2 =
"432"
;int r;
r =strncmp
(s2, s1,
strlen
(s1));
//r = strcmp(s2, s1);
printf
("%d\n"
, r)
;// s2 - s1 大為1 同為0 小為-1
strxfrm
const
char
* source =
"23234abc"
;char des[
100]
;size_t len =
strxfrm
(des, source,50)
;// des = source 最多copy50個,遇到\0立刻返回,返回實際copy的位元組數
printf
("%s\n"
,des)
;printf
("%d\n"
, len)
;
memchr在字串中找字元
const
char
* s =
"hello, programmers!"
;const
void
*p =
memchr
(s,'p'
,strlen
(s))
;//因為memchr(,,);return void*p;
//s是乙個指向char的指標,而任何指標都是個乙個4位元組的數,在這裡應//該是要說明搜尋整個字串的長度,所以應該用strlen(s)
if(p)
printf
("%s",(
char
*)p)
;else
printf
("not found!"
);
memchr找string中char的位址(void *)
strchr找string中char的位置(int)
const
char
* s =
"hello, programmers!"
;const
void
*p =
memchr
(s,'p'
,strlen
(s))
;//因為memchr(,,) return void*p;
//s是乙個指向char的指標,而任何指標都是個乙個4位元組的數
if(p)
printf
("%s",(
char
*)p)
;else
printf
("not found!"
);
char string[17]
;char
*ptr,
char c =
'r';
strcpy
(string,
"thisisastring");
ptr =
strchr
(string, c);if
(ptr)
printf
("the character %cis at position:%s\n"
, c, ptr)
;else
printf
("the character was not found\n"
);
strstr——字串中找字串,返回找到的起始位址
const
char haystack[20]
="runoob"
;const
char needle[10]
="noob"
;const
char
* ret;
ret =
strstr
(haystack, needle)
;printf
("子字串是: %s\n"
, ret)
;
strlen
char a[10]
="aaa"
;printf
("%d\n"
,strlen
(a))
;
在vs中呼叫 strcpy、strcat 等函式時會提示_crt_secure_no_warnings 警告,原因是這些函式不安全,可能會造成記憶體洩露等。
this function or variable may be unsafe. consider using sprintf_s instead. to disable deprecation, use _crt_secure_no_warnings. see online help for details.
解決方法1:
解決方法2:
在寫**的前面加上如下巨集定義:
#define _crt_secure_no_warnings
C語言基礎 輸入輸出
概念 1 輸入輸出是程式中最基本的操作之一,沒有輸出的程式是沒有意義的。2 輸入輸出是以計算機主機為主體而言的。從計算機向輸出裝置輸出資料成為輸出 從輸入裝置向計算機輸入資料成為輸入 3 c語言本身不提供輸入輸出語句,輸入輸出操作都是由c標準函式庫中的函式來實現的 注意printf和scanf並不是...
C語言基礎五 輸入輸出
1.printf 格式控制,輸出列表 格式控制 是 括起來的字串 a 普通字元,還包括轉義字元 b 格式宣告 和格式字串組成 d 以十進位制的形式輸出 整型 u 以無符號十進位制形式輸出 整型 o 以8進製的形式輸出整型 0x 以16進製制的形式輸出整型 f 以十進位制形式輸出double floa...
C語言輸入輸出
i o函式 printf 和scanf 輸出程式 函式的呼叫是在c語言標頭檔案 stdio.h 中包含這些像printf 輸入輸出 printf 一般形式如下 printf 格式化字串 輸出參數列 鍵盤輸入函式 顯示器輸出函式printf putchar puts 磁碟檔案操作creatnew 建立...