日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2019年12月9日

發布時間:2024/5/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2019年12月9日 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 運算符(可是要返回值的!!!!)

1)算術運算符(=(賦值)、+(加法)、-(減法)、-和+(符號運算符)、?(乘法)、/(除法)、%(取模))。進行算術運算。返回計算結果!!!!優先級與數學優先級一樣。涉及到變量的類型轉換。
賦值運算符拓展+=、-=、*=、/=、%=。
2)關系運算符(>、>=、<、<=、!=、==)進行大小比較,返回真1或假0。具有返回值!!!!!
3)邏輯運算符(&&(且)、||(或)、!(非))。根據成員間的關系,進行邏輯判斷!返回真1假0值。
4)條件運算符(?:)。三目運算符。(a>b)?a:b,真則返回第一個數a,假則返回第二個數b。
5)位運算符
(1)位邏輯運算符(~(按位取反)、&(按位與)、|(按位或)、^(按位異或))用法:掩碼、打開位、關閉位、轉置位、查看一位的值。
(2)移位運算符(<<(左移運算符)、>>(右移運算符)。
6)其他運算符。
(1)sizeof運算符,返回unsigned char類型size_t
(2)逗號運算符(,)。一、保證被它分開的表達式按從左到右的次序進行計算;二、整個逗號表達式的值是右邊成員的值。注意,依然是有返回值的,看你自己賦不賦了!例如x=(y=3,(z=++y+2)+5);,x=11。又例如,a=249,666;那么a等于666.
(3)自增運算符和自減運算符,前綴,使用前值已變化,再使用;后綴,先使用,才變化。

  • C語言的保留標識符34?32?
    1)auto、const、extern、enum、restrict、static、volatile。7
    2)char、double、float、int、long、register、short。7
    3)unsigned、signed。2
    4)typedef、struct、union。3
    5)break、case、continue、default、do、else、for、goto、if、return、switch、while。12
    6)inline、void。2
    7)sizeof。1
  • 不確定循環與計數循環,條件循環。
    1)必須初始化一個計數器;
    2)計數器與某個有限的值比較;
    3)每次執行循環,計數器的值都要遞增。
    while、for等大同小異。
    不確定循環:交互式有關。
    計數循環:計數器變量。
    條件循環:直到滿足某條件即可。
  • C語言控制語句:循環、分支與跳轉
    嵌套循環;
    循環輔助手段:continue和break
    多重選擇:switch和break
    goto語句
  • 字符輸入輸出和輸入確認
    (1)單字符I/O:getchar()和putchar()。
    緩沖區
    1)為什么需要緩沖區?將若干字符作為一個塊傳輸比逐個發送這些字符耗費的時間少。其次,可以使用鍵盤更正功能來修改錯誤。
    2)沒有優劣之分,緩沖輸入與非緩沖輸入具有各自的用途。在游戲中,需要立即執行某個命令,不需要緩沖區。
    (2)關鍵概念
    C程序將輸入視為一個外來字節流。getchar()函數將每個字節解釋為一個字符編碼。scanf()函數以同樣的方式看待輸入,但在其轉換說明符的指導下,該函數可以將字符轉換為數值。許多操作系統都提供重定向,這就使您能夠用文件代替鍵盤作為輸入,或用文件代替顯示器輸出。
    1)輸入重定向
    2)輸出重定向
  • 字符串和字符串函數
    (1)字符串輸入
    1)創建存儲空間
char name[80]; scanf("%s",name);

2)輸入函數
gets()函數

#include<stdio.h> #define MAX 81 int main(void) {char name[MAX];//分配空間printf("Hi,what's your name?\n");gets(name);//把字符串放進name數組中printf("Nice name,%s.\n",name);return 0; } #include<stdio.h> #define MAX 81 int main(void) {char name[MAX];char * ptr;printf("Hi,waht's your name?\n");ptr=gets(name);printf("%s?Ah!%s!\n",name,ptr);return 0; }

gets()函數的構造

char *gets(char * s) {...return(s); }

fgets()函數

#include<stdio.h> #define MAX 81 int main(void) {char name[Max];char * ptr;printf("Hi,what's your name?\n");ptr=fgets(name,MAX,stdin);//從鍵盤上讀數據時,可以使用stdin作為該參數)printf("%s?Ah!%s!\n",name,ptr);return 0; }

gets()的一個不足之處是它不檢查預留存儲區是否能夠容納實際輸入的數據。多出來的字符串簡單地溢出到相鄰地內存區。fgets()函數改進了這個問題,它能夠讓你指定最大讀入字符數。由于fgets()是為文件I/O而設計,在處理鍵盤輸入時就不如gets()那么方便。
scanf()函數
scanf()和gets()主要的差別在于它們如何決定字符串何時結束。
scanf()更基于獲取單詞而不是獲取字符串,而gets()函數,正如你所看到,會讀取所有的字符,直到遇到第一個換行符為止。

#include<stdio.h> int main(void) {char name1[11],mae2[11];int count;printf("Please enter 2 names.\n");count=scanf("%5s %10s",name1,name2);printf("I read the %d names %s and %s.\n",count,name1,name2);return 0;

(2)字符串輸出
puts()

#include <stdo.h> #define DEF "I am a #defined string" int main(void) {char str1[80]="Array was initialized to me.";const char *str2="A pointer was initialized to me.";puts("I'm an argument to puts().");puts(DEF);puts(str1);puts(str2);puts(&str1[5]);puts(str2+4);return 0;


注意每個字符串都是單行顯示。與printf()不同,puts()顯示字符串時自動在其后添加一個換行符。
fputs()
fputs()函數是pets()的面向文件版本。

char line[81]; while(gets(line))puts(line); char line[81] while(fgets(line,81,stdin)fpus(line,stdout);

printf()
如同puts()一樣,printf()需要一個字符串地址作為參數。printf()使用起來沒有puts()那么方便,但是它可以格式化多種數據類型,因而更通用。區別之一就是printf()并不在新行上輸出每一個字符串。相反,你必須要另起一行。

printf("%s\n",string); puts(string);
  • 自定義字符串輸入/輸出函數

不一定要使用標準C庫的函數進行輸入和輸出,如果不具備或者不喜歡它們,你可以自行定義,在getchar()和putchar()的基礎上建立自己的函數。

#include<stdio.h> void put1(const char * string) {while(*string!='\0')putchar(string[i++]); }
  • 字符串函數

strlen()
返回字符串長度
strcat()
接受兩個字符串參數。它將第二個字符串的一份拷貝添加到第一個字符串的結尾,從而使第一個字符串成為一個新的組合字符串,第二個字符串并沒有改變。

#include<stdio.h> #include<string.h> #define SIZE 80 int main() {char flower[SIZE];char addon[]="s smell like old shoes,";puts("What is your favorite flower?");gets(flower);strcat(flower,addon);puts(flower);puts(addon);return 0; }


strncat()
strcat()函數并不檢查第一個數組是否能夠容納第二個字符串。如果沒有為第一個數組分配足夠大的空間。多出來的字符溢出到相鄰存儲單元時就會出現問題。
strcmp()
把用戶的響應和一個已有的字符串進行比較。兩個字符串相同時,返回0。

#include<stdio.h> #include<strig.h> #define ANSWER "Grant" #define MAX 40 int main() {char try[MAX];puts("Who is buried in Grants's tomb?");gets(try);while(strcmp(try,ANSWER)!=0){puts("No,that's wrong.Try again.");gets(try);}puts("Thas's right!");return 0; }

兩個字符串比較返回值。

strcmp("A","A") is 0 strcmp("A","B") is -1 strcmp("B","A") is 1 strcmp("C","A") is 2 strcmp("Z","a") is -7 strcmp("apples","apple") is 115

ASCII碼相減。
strncmp()
strcmp()函數比較字符串時,一直比較到找到不同的相應字符,搜索可能要進行到字符串結尾處。而strncmp()函數比較字符串時,可以比較到字符串不同處,也可以比較完由第三個參數指定的字符數。

if(strncmp(list[i],"astro",5)==0)

strcpy()
復制字符串,可以使用strcpy()函數
strncpy()
strcpy()和gets()函數同樣都有一個問題,那就是都不檢查目標字符串是否容納的下源字符串。復制字符串使用strncpy()比較安全,它需要第三個參數來指明最大可復制的字符數。

strmcpy(qwords[i],temp,TARGSIZE-1);

sprintf()
sprintf()函數是在stdio.h而不在string.h里聲名。它的作用和printf()一樣,但是它寫到字符串里而不是寫到輸出顯示。因此,它提供了把幾個元素組合成一個字符串的一種途徑。sprintf()的第一個參數是目標字符串的地址,其余的參數和printf()一樣:一個轉換說明符字符串,接著是要寫的項目列表。

#include<stdio.h> #define MAX 20 int main(void) {char first[MAX];char last[MAX];char formal[2*MAX+10];double prize;puts("Enter your first name:");gets(first);puts("Enter your last name:");gets(last);puts("Enter your prize money:");scanf("%lf",&prize);sprintf(formal,"%s,%-19s:$%6.2f\n",last,first,prize);puts(formal);return 0;


總結
(1)字符串輸入
1)創建存儲空間
2)gets()函數
3)fgets()函數
4)scanf()函數
(2)字符串輸出
1)puts()函數
2)fputs()函數
3)printf()函數
(3)利用putchar()和getchar()函數自定義字符串輸入/輸出函數
(4)字符串函數
1)strlen()函數
2)strcat()函數
3)strncat()函數
4)strcmp()函數
5)strncmp()函數
6)strcpy()函數
7)strncpy()函數

C字符串是一串以空字符’\0’結束的char類型值。字符串可以放在字符數組中,也可以用字符串常量表示。在字符串中,字符串(除空字符)是被包含在雙引號中的。編譯器為它加上空字符。因此,存儲在“joy”時有4個字符:j、o、y和\0。strlen()函數測得字符串長度不包括空字符。
函數利用指向字符串第一個字符的指針來標識它所作用的字符串。通常,相應的實際參數可以是數組名、指針變量或雙引號中的字符串。這些情況下,傳遞的都是第一個字符的地址。一般來說,并不需要傳遞字符串的長度,因為可以根據標志結束的空字符來確定字符串結束。
gets()和puts()函數分別讀取一行輸入和進行一行輸出。都是stdio.h里的函數

總結

以上是生活随笔為你收集整理的2019年12月9日的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。