c語(yǔ)言 求大神 strlen(“abcd\0ef\ng\0”)結(jié)果是啥 關(guān)于c語(yǔ)言的一道題,strlen(“abcd\0ef\ng\...
結(jié)果是4
strlen是計(jì)算字符串的長(zhǎng)度的函數(shù)
\后面接數(shù)字是轉(zhuǎn)義
\0是對(duì)0的轉(zhuǎn)義,也是字符串的結(jié)束標(biāo)識(shí),strlen函數(shù)遇到\0就終止統(tǒng)計(jì)了,并且\0不統(tǒng)計(jì)在內(nèi),所以結(jié)果是abcd四個(gè)字符,
結(jié)果是13,strLen是算字符串的長(zhǎng)度
紀(jì)金13149763294: 不用中間變量實(shí)現(xiàn)strlen函數(shù) -
稻城縣互換: ______ int strlen(char str[]) { if(*str=='\0') return 0; return strlen(str+1)+1; }
紀(jì)金13149763294: c語(yǔ)言編程題求大神 -
稻城縣互換: ______ #include void Strim(char *str) { int len,i,j; len=strlen(str); i=len-1; //指向尾元素下標(biāo) //先去掉結(jié)尾的空格 while(str[i] == ' ') { i--; len--; } str[len]='\0'; //再去掉開頭的空格 i=0; while(str[i]!='\0'){ if(str[i] ==' '){ for(j=i+1;str[j]!='\0';j++) //將后面的字符串全部左...
紀(jì)金13149763294: C語(yǔ)言strlen求數(shù)組長(zhǎng)度.為什么會(huì)是這樣,linux下GCC編譯器. -
稻城縣互換: ______ 你換臺(tái)機(jī)器就不是5 8的值了! 所謂的固定,是你機(jī)器內(nèi)存情況剛好處在那種狀態(tài)下.你沒有\(zhòng)0,strlen()就會(huì)自動(dòng)去找\0位置,這個(gè)0位置在什么位置是不確定的.strlen(s)函數(shù),從s首地址開始一直統(tǒng)計(jì)到\0位置,其中有幾個(gè)字節(jié)就輸出長(zhǎng)度為...
紀(jì)金13149763294: 求C語(yǔ)言大神!我要輸入一個(gè)只有字母和*的字符串,函數(shù)的功能是將前導(dǎo)的*移植尾部,具體函數(shù)和例子見補(bǔ)充 -
稻城縣互換: ______ for(j=0;a[j]='*';j++); 修改為 for(j=0;a[j] !='*';j++);
紀(jì)金13149763294: C語(yǔ)言關(guān)于strlen()函數(shù)的問題 -
稻城縣互換: ______ 這里遇到字符串結(jié)束符不是偶然的.對(duì)于數(shù)組,C語(yǔ)言規(guī)定,若沒有初始化列表,則僅分配空間,對(duì)應(yīng)內(nèi)存區(qū)域?yàn)殡S機(jī)值(實(shí)際情況視編譯器而定,例如Microsoft C編譯器Debug模式下會(huì)用0xcc填...
紀(jì)金13149763294: C語(yǔ)言 編程求大神! -
稻城縣互換: ______ char * InsertStrAt(char * str, char * sub, int at){ int l1, l2, i; l1 = strlen(str); l2 = strlen(sub); if((at > l1) || ( at < 0)) return str; str += at; for(i=l1; i>=0; --i) *(str + l2 + i) = *(str + i); for(i=0; i< l2; ++i) *(str + i) = *(sub + i); return str - at; }
紀(jì)金13149763294: C語(yǔ)言求高手解答尤其是p+strlen(q), 表達(dá)的意思 -
稻城縣互換: ______ 定義了數(shù)組p[20],sizeof(p)為20 p+strlen(q);其實(shí)是個(gè)地址, strcpy(p+strlen(q), r); 等同于 {*(p+strlen(q))=0; strcat(p,r);} 最后p為"abcabcdeabc"; strlen(p)為11
紀(jì)金13149763294: C語(yǔ)言,C++問題,字符串求長(zhǎng)的strlen函數(shù); -
稻城縣互換: ______ 輸出結(jié)果是不確定的,因?yàn)槟愕腸har數(shù)組不存在末尾的'\0' 正確的初始化方式應(yīng)該是:char c[] = "abc"; 補(bǔ)充:只有字符串形式的初始化,編譯器才會(huì)幫你在某位補(bǔ)零 你用的那種方式,得到數(shù)組長(zhǎng)度就是3,哪里來有位置補(bǔ)零呢?
紀(jì)金13149763294: c語(yǔ)言求科普,很短的一段代碼.坐等科普.關(guān)于strlen()問題. -
稻城縣互換: ______ 定義的時(shí)候未指定str1和str2的數(shù)組大小,在char str1[]={"\0"},str2[]={"\0"};語(yǔ)句中,實(shí)際上是把str1和str2初始化成2個(gè)元素的數(shù)組了. 而scanf語(yǔ)句又是不檢查輸入是否溢出,這樣的話,實(shí)際上scanf的時(shí)候在str1和str2以外的內(nèi)存部分寫入了數(shù)據(jù)(數(shù)組越界). strlen函數(shù)的計(jì)算方法是從參數(shù)指定的內(nèi)存地址向后查找"\0",并計(jì)數(shù).在內(nèi)存寫越界的時(shí)候,哪個(gè)位置是"\0"是不一定的. 因此得到的結(jié)果是個(gè)不定值,完全依賴于當(dāng)時(shí)的內(nèi)存內(nèi)容. 比如,在我的機(jī)器上就顯示為8和7,看起來是正確的,但實(shí)際上只是湊巧.
紀(jì)金13149763294: 求解一個(gè)c語(yǔ)言選擇題 不是說strlen遇到/0就停止了嗎?
稻城縣互換: ______ 這是\012 ,給你段一段, 一行一個(gè) a b \n \012 \\ \" 親
strlen是計(jì)算字符串的長(zhǎng)度的函數(shù)
\后面接數(shù)字是轉(zhuǎn)義
\0是對(duì)0的轉(zhuǎn)義,也是字符串的結(jié)束標(biāo)識(shí),strlen函數(shù)遇到\0就終止統(tǒng)計(jì)了,并且\0不統(tǒng)計(jì)在內(nèi),所以結(jié)果是abcd四個(gè)字符,
結(jié)果是13,strLen是算字符串的長(zhǎng)度
相關(guān)評(píng)說:
稻城縣互換: ______ int strlen(char str[]) { if(*str=='\0') return 0; return strlen(str+1)+1; }
稻城縣互換: ______ #include void Strim(char *str) { int len,i,j; len=strlen(str); i=len-1; //指向尾元素下標(biāo) //先去掉結(jié)尾的空格 while(str[i] == ' ') { i--; len--; } str[len]='\0'; //再去掉開頭的空格 i=0; while(str[i]!='\0'){ if(str[i] ==' '){ for(j=i+1;str[j]!='\0';j++) //將后面的字符串全部左...
稻城縣互換: ______ 你換臺(tái)機(jī)器就不是5 8的值了! 所謂的固定,是你機(jī)器內(nèi)存情況剛好處在那種狀態(tài)下.你沒有\(zhòng)0,strlen()就會(huì)自動(dòng)去找\0位置,這個(gè)0位置在什么位置是不確定的.strlen(s)函數(shù),從s首地址開始一直統(tǒng)計(jì)到\0位置,其中有幾個(gè)字節(jié)就輸出長(zhǎng)度為...
稻城縣互換: ______ for(j=0;a[j]='*';j++); 修改為 for(j=0;a[j] !='*';j++);
稻城縣互換: ______ 這里遇到字符串結(jié)束符不是偶然的.對(duì)于數(shù)組,C語(yǔ)言規(guī)定,若沒有初始化列表,則僅分配空間,對(duì)應(yīng)內(nèi)存區(qū)域?yàn)殡S機(jī)值(實(shí)際情況視編譯器而定,例如Microsoft C編譯器Debug模式下會(huì)用0xcc填...
稻城縣互換: ______ char * InsertStrAt(char * str, char * sub, int at){ int l1, l2, i; l1 = strlen(str); l2 = strlen(sub); if((at > l1) || ( at < 0)) return str; str += at; for(i=l1; i>=0; --i) *(str + l2 + i) = *(str + i); for(i=0; i< l2; ++i) *(str + i) = *(sub + i); return str - at; }
稻城縣互換: ______ 定義了數(shù)組p[20],sizeof(p)為20 p+strlen(q);其實(shí)是個(gè)地址, strcpy(p+strlen(q), r); 等同于 {*(p+strlen(q))=0; strcat(p,r);} 最后p為"abcabcdeabc"; strlen(p)為11
稻城縣互換: ______ 輸出結(jié)果是不確定的,因?yàn)槟愕腸har數(shù)組不存在末尾的'\0' 正確的初始化方式應(yīng)該是:char c[] = "abc"; 補(bǔ)充:只有字符串形式的初始化,編譯器才會(huì)幫你在某位補(bǔ)零 你用的那種方式,得到數(shù)組長(zhǎng)度就是3,哪里來有位置補(bǔ)零呢?
稻城縣互換: ______ 定義的時(shí)候未指定str1和str2的數(shù)組大小,在char str1[]={"\0"},str2[]={"\0"};語(yǔ)句中,實(shí)際上是把str1和str2初始化成2個(gè)元素的數(shù)組了. 而scanf語(yǔ)句又是不檢查輸入是否溢出,這樣的話,實(shí)際上scanf的時(shí)候在str1和str2以外的內(nèi)存部分寫入了數(shù)據(jù)(數(shù)組越界). strlen函數(shù)的計(jì)算方法是從參數(shù)指定的內(nèi)存地址向后查找"\0",并計(jì)數(shù).在內(nèi)存寫越界的時(shí)候,哪個(gè)位置是"\0"是不一定的. 因此得到的結(jié)果是個(gè)不定值,完全依賴于當(dāng)時(shí)的內(nèi)存內(nèi)容. 比如,在我的機(jī)器上就顯示為8和7,看起來是正確的,但實(shí)際上只是湊巧.
稻城縣互換: ______ 這是\012 ,給你段一段, 一行一個(gè) a b \n \012 \\ \" 親