麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

C語言打印字符串的一部分的方法

2019-11-14 10:10:14
字體:
來源:轉載
供稿:網友

http://c.biancheng.net/cpp/html/1575.html

C語言打印字符串的一部分的方法

頭文件:#include <stdio.h>sPRintf()函數用于將格式化的數據寫入字符串,其原型為:    int sprintf(char *str, char * format [, argument, ...]);【參數】str為要寫入的字符串;format為格式化字符串,與printf()函數相同;argument為變量。除了前兩個參數類型固定外,后面可以接任意多個參數。而它的精華,顯然就在第二個參數--格式化字符串--上。 printf()和sprintf()都使用格式化字符串來指定串的格式,在格式串內部使用一些以“%”開頭的格式說明符(format specifications)來占據一個位置,在后邊的變參列表中提供相應的變量,最終函數就會用相應位置的變量來替代那個說明符,產生一個調用者想要的字符串。sprintf()最常見的應用之一莫過于把整數打印到字符串中,如:    sprintf(s, "%d", 123);  //把整數123打印成一個字符串保存在s中    sprintf(s, "%8x", 4567);  //小寫16進制,寬度占8個位置,右對齊sprintf的作用是將一個格式化的字符串輸出到一個目的字符串中,而printf是將一個格式化的字符串輸出到屏幕。sprintf的第一個參數應該是目的字符串,如果不指定這個參數,執行過程中出現 "該程序產生非法操作,即將被關閉...."的提示。sprintf()會根據參數format 字符串來轉換并格式化數據,然后將結果復制到參數str 所指的字符串數組,直到出現字符串結束('/0')為止。關于參數format 字符串的格式請參考printf()。【返回值】成功則返回參數str 字符串長度,失敗則返回-1,錯誤原因存于errno 中。注意:C語言對數組進行操作時并不檢測數組的長度,如果str的長度不夠,sprintf()很容易造成緩沖區溢出,帶來意想不到的后果,黑客經常利用這個弱點攻擊看上去安全的系統。請看下面的代碼:
#include <stdio.h>main(){    char buf[10];    sprintf(buf, "The length of the string is more than 10");    printf("%s", buf);}編譯并運行,屏幕上輸出”The length of the string is more than 10“,同時系統提示程序已經停止。原因就是要寫入的字符串的長度超過了buf的長度,造成緩沖區溢出。使用snprintf()來代替sprintf()將能夠很好的解決這個問題。【實例】打印字母a的ASCII值。
#include <stdio.h>main(){    char a = 'a';    char buf[80];    sprintf(buf, "The ASCII code of a is %d.", a);    printf("%s", buf);}運行結果:The ASCII code of a is 97.又如,產生10個100以內的隨機數并輸出。
#include<stdio.h>#include<stdlib.h>#include<time.h>int main(void){    char str[100];    int offset =0;    int i=0;    srand(time(0));  // *隨機種子    for(i = 0;i<10;i++)    {        offset+=sprintf(str+offset,"%d,",rand()%100);  // 格式化的數據寫入字符串    }    str[offset-1]='/n';    printf(str);    return 0;}運行結果:74,43,95,95,44,90,70,23,66,84例子使用了一個新函數srand(),它能產生隨機數。例子中最復雜的部分是for循環中每次調用函數sprintf()往字符數組寫數據的時候,str+foffset為每次寫入數據的開始地址,最終的結果是所有產生的隨機數據都被以整數的形式存入數組中。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深夜精品福利 | 国产成人精品网站 | 中国免费黄色 | 免费久久久久 | 主播粉嫩国产在线精品 | 欧美一级久久 | 羞羞视频在线免费 | 宅男视频在线观看免费 | 少妇一级淫片免费放播放 | 色交视频 | 欧美一级精品片在线看 | 久久久国产精品成人免费 | 成人三级电影在线 | 欧美视频一区二区 | 日韩中文字幕一区二区三区 | 一级看片免费视频 | 黄色免费小网站 | 国产一区二区精彩视频 | 亚洲免费视频一区二区 | 日本在线免费观看视频 | 中国漂亮护士一级a毛片 | 国产午夜精品一区二区三区免费 | 久久国产在线观看 | 亚州精品在线视频 | 欧美一级做性受免费大片免费 | 护士xxxx | 91豆奶| 国产一区二区三区在线观看视频 | 国产寡妇xxxxxxxx性开放 | 欧美城网站地址 | 国产精品久久久久国产精品三级 | 久久精品视频黄色 | 欧美激情精品久久久久久久久久 | 韩国19禁在线 | 国产资源在线观看 | 亚洲精品成人av在线 | 久久一本日日摸夜夜添 | 天天色人人爱 | 成熟女人特级毛片www免费 | 摸逼逼视频 | 最新中文字幕免费视频 |