Ⅰ c語言中 strlen函數用法的問題
printf("%*d%*d\n",strlen(firstname),strlen(firstname),strlen(sumame),
strlen(sumame));
這個是輸出匹配的問題。
舉個例子
printf("%5d",5);
就會給你5個空間輸出5,前面4個空格,然後輸出5.
printf("%*d",5,5);和上面一樣,利用*匹配5控制輸出寬度。就是四個空格5.
同理上面的第一個strlen是作為輸出寬度而存在的,也就是說給你字元串長度個空間,用於存放字元串長度的變數。
比如輸入
we
women
就相當於
printf("%*d%*d",2,2,5,5);
相當於
printf("%2d%5d",2,5);輸出
【1個空格】2【4個空格】5
Ⅱ c語言中,在自己定義的函數中可以使用strlen函數嗎
可以,不過要包含string.h #include "string.h"
#include "stdio.h"
#include "string.h"
void func()
{
char p[]="abc";
printf("%d",strlen(p));
}
void main{
func();
}
Ⅲ c語言中strlen()怎麼用
函數聲明:extern unsigned int strlen(char *s);
所屬函數庫:<string.h>
功能:返回s所指的字元串的長度,其中字元串必須以』\0』結尾
參數:s為字元串的初始地址
使用舉例:
代碼如下
編譯運行結果
說明:
函數strlen比較容易理解,其功能和sizeof很容易混淆。其中sizeof指的是字元串聲明後佔用的內存長度,它就是一個操作符,不是函數;而strlen則是一個函數,它從第一個位元組開始往後數,直到遇見了』\0』,則停止
第一 string頭文件中的函數strlen 只可以用來測試字元型數組的長度,其他類型不可以
第二 如果要測試int 修改原函數中的參數,會導致數組長度變長(計算機會一直找下去,直到遇到\0)
第三 如果是字元數組,當裡面的字元數少於數組長度時,可以正常輸出用strlen,如果等於數組長度,則會出現問題
函數介紹:
(推薦教程:c語言教程)
strlen()函數用於計算字元串的長度,直到空結束字元,但不包括空結束字元。
語法結構:
size_t strlen(const char *str)
參數說明:
str -- 要計算長度的字元串。
返回值:
該函數返回字元串的長度
Ⅳ c語言strlen函數問題
strlen實際上是,從參數表示的地址往後找,找到第一個'',即串尾。然後計算''至首地址的「距離」,即隔了幾個字元,從而得出長度。
char x[]={0xBC,0xDD,0xCA};中,實際上是定義了一個char型的數組,而由於x[0],即0xBC開始往後找,一直到0xCA,都沒'',所以會繼續往後。當然,實際上往後找到的是其他值。
改char x[]={0xBC,0xDD,0xCA,0x00};後,應該就是3了。
(4)c語言中使用strlen函數需要定義嗎擴展閱讀:
strlen所作的僅僅是一個計數器的工作,它從內存的某個位置(可以是字元串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字元串結束符''為止,然後返回計數器值(長度不包含'')。
函數原型
extern unsigned int strlen(char *s);
在Visual C++ 6.0或Dev-C++中,原型為
size_t strlen(const char *string);
,其中size_t實際上是unsigned int,在VC6.0或Dev-C++中可以看到這樣的代碼:
typedef unsigned int size_t;
頭文件:string.h或cstring
格式:strlen (字元數組名)
功能:計算給定字元串的(unsigned int型)長度,不包括''在內
說明:返回s的長度,不包括結束符NULL。
參考資料:strlen-網路
Ⅳ 在C語言中Strlen是什麼意思
strlen是求字元串的長度,但不包括字元串的null結束符。
strlen為C語言庫函數,包含於string.h中,作用為計算一個字元串(字元數組)中元素的個數,即從數組頭部計數,直到遇到字元串結束符為止,計數結果不包括。
需要注意的是,strlen並不是絕對安全的,如果在傳入的字元數組的合法范圍,不存在結束符,那麼strlen函數會一直訪問下去,超出數組范圍,即出現越界訪問。所以使用strlen時,程序員必須確認參數字元數組中包含值,否則會出現不可預知後果。
(5)c語言中使用strlen函數需要定義嗎擴展閱讀:
strlen(char*)函數求的是字元串的實際長度,它求得方法是從開始到遇到第一個'',如果你只定義沒有給它賦初值,這個結果是不定的,它會從aa首地址一直找下去,直到遇到''停止。
sizeof操作符的結果類型是size_t,它在頭文件中typedef為unsigned int類型。
該類型保證能容納實現所建立的最大對象的位元組大小。
sizeof是取位元組運算符(關鍵字),strlen是函數。
sizeof可以用類型做參數,strlen只能用char*做參數,且必須是以''結尾的。
Ⅵ C語言,visual c++到底可不可以用strlen,sqrt,等等的函數,每次他都說字元未定義
可以的
如果要用strlen或者其它str相關的函數 需要
#include <string.h>
如果要用sqrt 則需要
#include <math.h>
如果這樣還不可以 那麼就是你VC裝的有問題了,建議重裝一下。
Ⅶ c語言中strlen是什麼意思
strlen:計算字元串長度的庫函數名。
str:通常,程序員喜歡用它作 字元串 變數名。它是string(英文詞字元串的縮寫)。
len:通常,程序員喜歡用它作 變數名。它是 length(英文詞長度的縮寫)。
例如:
char str[20]="I am a student";
int len;
len = strlen(str);
printf("the string length is: %d",len);
(7)c語言中使用strlen函數需要定義嗎擴展閱讀:
函數原型
externunsignedintstrlen(char*s);
在Visual C++ 6.0或Dev-C++中,原型為size_tstrlen(constchar*string);,其中size_t實際上是unsigned int,在VC6.0或Dev-C++中可以看到這樣的代碼:
typedefunsignedintsize_t;頭文件:string.h或cstring
格式:strlen (字元指針表達式)
功能:計算給定字元串的(unsigned int型)長度,不包括''在內
說明:返回s的長度,不包括結束符NULL。
strlen(char*)函數求的是字元串的實際長度,它求得方法是從開始到遇到第一個'',如果你只定義沒有給它賦初值,這個結果是不定的,它會從aa首地址一直找下去,直到遇到''停止。
Ⅷ C語言strlen函數問題
strlen()函數的作用是統計給定字元串的長度。 函數原型:unsigned int strlen(char *str); 功 能:統計字元串str中字元的個數,不包括'\0' 返 回 值:返回字元個數 舉例: char *str1 = "abcdef"; // 定義一個字元指針char str2[] = "abcdef"; // 定義一個字元數組int len = strlen(str1); // 統計str1字元的個數,結果為6int len = strlen(str2); // 統計str2字元的個數,結果為6
Ⅸ C語言中strlen()函數的意思
strlen()是讀取字元串長度的意思,舉例如下
char a[]={'a','b','c'};
return strlen(a);
返回字元串a的長度,是3。
需要注意的是,strlen()函數需要<string.h>的頭文件。
如有疑問請您追問。
Ⅹ C語言中的strlen函數
strlen()只是統計字元串的長度,統計到'\0'結束,但不包括'\0',這個與sizeof()不一樣。
對於用雙引號引起來的字元串,系統默認最後一位字元為'\0',如你自己定義的:
char a[]="china";
char b[]={"china"};
另外,數組初始化還可以是一個字元一個字元賦值,如:
char c[]={'c','h','i','n','a'};
char d[]={'c','h','i','n','a','\0'};
但系統不會自動給你在最末位添加'\0』
所以在統計char c[]={'c','h','i','n','a'}時,統計到a時,系統還沒找到\0,所以會繼續統計,直到找到'\0'為止。所以就有你第三個值為11的情況,這個根據不同的運行環境而定。