亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: C中如何在字符串未知的情況下賦值 [打印本頁]

作者: donglangjohn    時間: 2007-09-16 14:50
標題: C中如何在字符串未知的情況下賦值
如題   

用戶輸入的字符串個數(shù)是未知的   我該怎么定義呢

char a[];//長度未知!  怎么辦     

只要能夠連續(xù)接收用戶的輸入就行
作者: cugb_cat    時間: 2007-09-16 14:53
只能強制給一個最大長度
作者: donglangjohn    時間: 2007-09-16 15:02
原帖由 cugb_cat 于 2007-9-16 14:53 發(fā)表
只能強制給一個最大長度




有沒有什么變通的方法    只要客戶能夠連續(xù)的輸入就可以了
作者: cugb_cat    時間: 2007-09-16 15:06
原帖由 donglangjohn 于 2007-9-16 15:02 發(fā)表




有沒有什么變通的方法    只要客戶能夠連續(xù)的輸入就可以了

什么叫連續(xù)輸入?再怎么輸入也要有個最大的程度啊
除非使用字符鏈表,每輸入一個就申請一塊空間用于存放
作者: donglangjohn    時間: 2007-09-16 15:10
標題: 回復(fù) #4 cugb_cat 的帖子
比如  我在屏幕上輸入1234567890  也可能是123456789123456789

情況不定   我卡在這里了     請指點
作者: tianqio    時間: 2007-09-16 15:35
自己做個動態(tài)數(shù)組吧,往數(shù)組里寫的時候發(fā)現(xiàn)長度超過一定閥值,就new一個新的數(shù)組,長度加倍...
作者: zx_wing    時間: 2007-09-16 15:38
原帖由 donglangjohn 于 2007-9-16 15:10 發(fā)表
比如  我在屏幕上輸入1234567890  也可能是123456789123456789

情況不定   我卡在這里了     請指點

c里面確實還不知道有什么好方法。如果輸入是通過main()的參數(shù)形式輸入的就好辦,你可以用:

  1. char *str = malloc(strlen(argv[1]) + 1);
復(fù)制代碼

這種方式。
要是是用scanf就不好辦了。
作者: donglangjohn    時間: 2007-09-16 15:47
標題: 回復(fù) #7 zx_wing 的帖子
還沒學到那么高的地步   看不懂
作者: zx_wing    時間: 2007-09-16 15:54
原帖由 donglangjohn 于 2007-9-16 15:47 發(fā)表
還沒學到那么高的地步   看不懂

那建議lz先看看c語言書中講main函數(shù)兩個參數(shù)的部分,然后再看看malloc函數(shù)的用法。
如果是通過命令行運行程序,程序名后面跟參數(shù)的方法接收用戶輸入,這個辦法即可以解決
作者: ddvv    時間: 2007-09-16 16:04
命令行參數(shù)的長度不可能是無限長的吧。。。。。
作者: mik    時間: 2007-09-16 16:13
使用遞歸策略或者出入棧策略吧
作者: ddvv    時間: 2007-09-16 16:22
輸入太長了,緩沖區(qū)不夠怎么辦?
作者: MMMIX    時間: 2007-09-16 16:25
原帖由 donglangjohn 于 2007-9-16 15:10 發(fā)表
比如  我在屏幕上輸入1234567890  也可能是123456789123456789

情況不定   我卡在這里了     請指點

把整個輸入行先讀進來再說。
作者: flw    時間: 2007-09-16 16:25
你這個用戶輸入的那一堆東西都是干什么的呀?
先搞清楚需求。
作者: prc    時間: 2007-09-17 09:18
你可以強制指定輸入緩沖區(qū)的最大長度,4096應(yīng)該就夠用了
如果客戶非得一次輸入1M或者1G的數(shù)據(jù)量,那只能說這個客戶變態(tài)....




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2