字元串的輸入scanf 和gets

来源:http://www.cnblogs.com/cwx930107/archive/2017/08/11/7345462.html
-Advertisement-
Play Games

#include<stdio.h> #include<string.h> #define N 100 int main(int argc, const char *argv[]) { char str1[N]; char str2[N]; ①scanf("%s",str1); ②gets(str1) ...


#include<stdio.h> #include<string.h> #define N 100 int main(int argc, const char *argv[]) { char str1[N]; char str2[N]; ①scanf("%s",str1); ②gets(str1); printf("%s\n",str1); return 0; }   ①這種情況如果是列印Hello World這種中間位置有空格的字元串會出現只列印Hello的情況, 因為scanf函數中,只有%c才能列印空格這樣的字元,而%s是不認識空格這樣的字元型常量 ②gets()這個函數就沒有以上的顧慮,但是不建議使用這樣的輸入方法,#define N 100這裡 定義的是字元串能夠占用的記憶體,gets()是將輸入的字元串全部輸入,這樣就會造成如果輸 入的字元串的長度大於定義的記憶體就會占用非法的記憶體空間 linux@ubuntu:~/cwx$ ./zifuchuan1 i am student!!! i come from yancheng i am student!!! i come from yancheng *** stack smashing detected ***: ./zifuchuan1 terminated (stack smashing detected是分配的空間不足的提示)   另外還有一個註意點就是scanf("%s",str1)與之前輸入的方式不同的是字元串在輸入的時候是不 需要加上&這樣的取地址符,因為str1作為字元串名其實就是地址常量
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 近期在做一個答題類型的APP,而其中最重要的是答題卡。而答題卡要如何做? 1.將數據插入到SQLite資料庫中 2.建立entity實體包,創建實體類,封裝。 3.創建實體與view的List集合 4.迴圈讀取數據,加入到實體集合中 5.根據實體集合(size)進行迴圈,將佈局文件轉化為view,加 ...
  • 1、創建應用 獲取AK (我理解為Application key) 通過百度賬號登錄百度地圖開放平臺,進入API控制台 http://lbsyun.baidu.com/apiconsole/key 創建自己的應用,輸入應用名稱 ,選擇Android SDK 應用類型,選擇需要的服務(預設全選) 輸入 ...
  • 1. 泛型 AysncTask Params:啟動任務時傳入的參數,通過調用asyncTask.execute(param)方法傳入。 Progress:後臺任務執行的進度,若不用顯示進度條,則不需要指定。 Result:後臺任務結束時返回的結果。 2. 重要方法 doInBackground(Pa ...
  • 一,效果圖。 二,代碼。 ViewController.m ...
  • Desktop:基本的桌面系統,包括常用的桌面軟體,如文檔查看工具;Minimal Desktop:基本的桌面系統,包含的軟體更少;Minimal:基本的系統,不包含任何可選的軟體包;Basic Server:安裝的基本系統的平臺支持,不包含桌面;Database Server:基本系統平臺,加上M... ...
  • 1.1 wrap簡介 wrap工作在內核空間和應用程式中間的庫層次中。在內核接受到數據包准備傳送到用戶空間時都會經過庫層次,對於部分(只是部分)應用程式會在經過庫層次時會被wrap庫文件阻擋下來檢查一番,如果允許通過則交給應用程式。 1.2 查看是否支持wrapper wrap只會檢查tcp數據包, ...
  • 本文目錄: 1.1 pxe安裝系統 1.2 cobbler基本介紹 1.3 安裝和配置cobbler 1.3.1 安裝cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler從本地光碟安裝系統 1.4.1 生成distro 1.4.2 提供kickstart文件 1.4.3 提供p ...
  • 一、概述 Linux 組配置(/etc/group)文件分為4個欄位,分別為: 組名、組密碼、GID和組成員。 二、示例 [root@titan ~]# cat /etc/group | grep fruit fruit:x:1001: 其中,fruit為組名,x為組密碼,1001為GID,組成員字 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...