1. 程式人生 > >輸出連續字元函式(動態增加空間)

輸出連續字元函式(動態增加空間)

#include<stdio.h>
#include<conio.h> 
#include<windows.h>

#define Step  10   //空間增加的步長.

char * getstr()    //任意長度的字串輸入,返回字串的首地址.
{
    char *temp, *str=(char *)malloc(10);
    int c=0, len=0, times=1, number=0;
    if(!str)
    {
        printf("記憶體不夠,無法開闢字串空間!");
        return (char *)NULL;
    }
    number+=times*Step;
    while((c=getche())!='/r')   //遇到回車則輸入結束。
    {
        if(len==number)
        {
            times++;
            number=times*Step;
            temp=str;   
            str=(char *)realloc(str,number);
            if(str==NULL)
            {
                printf("記憶體不夠,字串輸入受限!");
                str=temp; 
                break;
            }
        }
        *(str+len)=c;
        len++;
    }  
    str=(char *)realloc(str,len+1);  //字串的實際長短調整空間.
    *(str+len)='/0';
    return str;
}

int main()
{
    char *str=NULL;
    str=getstr();     //字串輸入
    printf("/nstr=%s/n",str);
    free(str);  
    return 0;
}

相關推薦

輸出連續字元函式(動態增加空間)

#include<stdio.h>#include<conio.h>  #include<windows.h> #define Step  10   //空間增加的步長. char * getstr()    //任意長度的字串輸入,返回字

ACMNO.25 C語言-間隔輸出 寫一函式,輸入一個四位數字,要求輸出這四個數字字元,但每兩個數字間空格。如輸入1990,應輸出"1 9 9 0"。 輸入 一個四位數 輸出 增加空格輸出

題目描述 寫一函式,輸入一個四位數字,要求輸出這四個數字字元,但每兩個數字間空格。如輸入1990,應輸出"1 9 9 0"。 輸入 一個四位數 輸出 增加空格輸出 樣例輸入 1990 樣例輸出 1 9 9 0 來源/分類 C語言

本文部分轉載 一.scanf函式的機理 scanf()不是以行單位對輸入內容進行解釋,而是對連續字元流進行解釋(換行字元也視為一個字元)。scanf()連續地從流讀入字元,並且對和格式說明符(

本文部分轉載 一.scanf函式的機理   scanf()不是以行單位對輸入內容進行解釋,而是對連續字元流進行解釋(換行字元也視為一個字元)。scanf()連續地從流讀入字元,並且對和格式說明符(%d)相匹配的部分進行變換處理。例如,當格式說明符為%d 的時候,輸入123

C++ (建構函式、解構函式動態申請空間

#include<iostream> #include<string.h> using namespace std; //整型陣列: class IntArray//動態陣列 {

C語言:每隔一秒,動態首尾依次輸出一個字元,直到全部輸出

#include<stdio.h> #include<stdlib.h> #include<windows.h> void Test() {     char arr1[] = "###############";     char ar

二維陣列的動態申請空間並引數傳給函式

說明: 1. 二維陣列動態建立 2. 把二維陣列作為引數傳遞給函式 參考程式碼: #include <stdio.h> #include <stdlib.h> void func(int** pArray, int m, int

計算機圖形學(二)輸出圖元_16_字元函式

OpenGL 字元函式  OpenGL基本庫僅為顯示單個字元和文字串提供了基本的支援。我們可以定義圖3.61中的點陣圖字元,並將一個位圖集作為字型檔儲存。一個文字串通過將從字型檔中選擇的點陣圖序列對映到幀快取的 相鄰位置來顯示。 但是,OpenGL實用函式工具包(GLUT

jq動態增加的button標簽click回調失效的問題,即$("button.class").click(function)

parent 動態 使用 .class alert click his phi blog 對於新增加的頁面元素,改變了頁面結構,如果是使用老辦法$("button.class").click(function)去監聽新的button標簽事件,會失效。 筆者的應用是文字的顯示

C#—Dev XtraTabControl動態增加Tab和關閉選項卡方法

按鈕 屬性 bool new express controls dispose lean 選中 C#—Dev XtraTabControl動態增加Tab和關閉選項卡方法,有需要的朋友可以參考下。 記錄一下以免以後忘了 添加using DevExpress.XtraTab;

DOM增刪操作(select動態增加和刪除以及清空)

select() move rip 清空 cli oct for elm pen <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title><

js_table動態增加和刪除

ntb ref ctype efi lob logs idt pen str html頁面 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <

Fabric動態增加組織【資料】

rst 實測 rec 版本 pda fab 動態 ann docs Fabric在啟動之前需要生成Orderer的創世區塊和channel的配置區塊。也就是說在Fabric網絡啟動之前我們就必須定好了有哪些Org,而當Fabric已經跑起來之後,想要增加Org卻是很麻煩的事

ZooKeeper動態增加Server(動態增加節點)的研究(待實踐)

leader linux nod 部署 them user ase 通過 增加節點 說明:是動態增加Server,不是動態增加連接到ZK Server的Client。 場景如下(轉自外文): 1、在t=t_1->[peer-1(Leader),peer-2],pe

指針動態空間的板子

sca tchar include scanf cnblogs tdi scan log har #include<cstdio> int **matrix; int n,m; int main(){ register int i,j; sc

php 給對象動態增加屬性

() isp start ati 增加 word obj sta art <?php error_reporting(-1); ini_set(‘display_errors‘,‘on‘); class A { public $a =

MyBatis入門(二)—— 輸入映射和輸出映射、動態sql、關聯查詢

輸出類型 sql name屬性 一對一 test HA h標簽 自動 CI p.p4 { margin: 0.0px 0.0px 0.0px 10.0px; font: 10.5px "PingFang SC" } p.p6 { margin: 0.0px 0.0px 0.

web調用手機相冊,並實現動態增加圖片功能

ogr capture form use rod index oot 3.3 jquery 註:經測試h5調用相冊效果有兼容性問題,安卓僅能調用拍照功能(部分安卓可能會調不起來,所以建議用app原生調用),ios可調起拍照和相冊功能。 <html xmlns="

hadoop+Spark+hbase集群動態增加節點

控制臺 完成 卸載 nag block cluster dfs clust width 分布式系統的一個優勢就是動態可伸縮性,如果增刪節點需要重啟那肯定是不行的。後來研究了一下,發現的確是不需要重啟集群,直接在新增的節點上分別啟動以下進程即可:以hadoop、spark和h

動態增加響應式表單

oid btn html int ive rom 響應 cad print 頁面文件: <form *ngFor="let form of list" [formGroup]="form"> <div class="form-group">