c語言基礎 輸入輸出及string操作

2021-10-01 06:37:09 字數 4586 閱讀 4443

#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 建立...