當前位置:首頁 » 編程語言 » c語言字元串的size怎麼獲取
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言字元串的size怎麼獲取

發布時間: 2022-07-03 09:42:10

c語言字元串和字元常量佔用內存大小怎麼看

如果初始化的時候沒有指定數組長度,採用自動推算的話,數組大小和字元串字面量是一樣的。
使用sizeof運算符獲取數組的大小。
例如
1char arr[] = "Hello";
sizeof
arr
==
sizeof
"Hello"
,就是6.
而因為字元常量的類型是int,所以sizeof
'A'
==
sizeof(int)。

⑵ C語言編程中,輸入一個字元串數組,如何得出該數組的長度

使用C語言函數strlen()

函數原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型為size_t strlen( const char *string );,其中size_t實際上是unsigned int,在VC6.0中可以看到這樣的代碼:typedef unsigned int size_t;。
頭文件:string.h
功能:計算字元串s的(unsigned int型)長度
說明:返回s的長度,不包括結束符NULL。
程序舉例:
#include <string.h>
#include<stdio.h>
int main(void)
{
char s[]="Golden Global View";
printf("%s has %d chars",s,strlen(s));
return 0;
}

⑶ 求問~C語言中,如何輸入一個字元串,然後用sizeof知道它的長度

sizeof是用來獲取其類型(比如char型、int型等)的尺寸,要知道字元串的長度,可以調用strlen函數或者自己從頭開始挨個數,直到碰到字元串結束符 '\0『 為止

⑷ 如何用c語言來表達一個字元串

1)在串值後面加一個不計入長度的結束標記字元,比如'\0'來表示串值的終結

初始化一個字元串的方法如下,在最後添加'\0'

char str[] = {'I','a','m','h','a','p','p','y','\0'};
也可以直接使用字元串常量初始化字元數組(系統自動加上'\0'),這種方法符合人們的習慣。

char str[] = "I am happy";
或者
char str[] = {"I am happy"};
注意:不能使用下面的賦值方式:
char str[20];
str = "I am happy";
但可以用字元指針指向這個字元串:
char *str;
str = "I love China";

(2)將實際串長度值保存在數組0的下標下

#define MAXSIZE 20 //數組的長度
typdef char String[MAXSIZE+1];
初始化字元串的方法:

String t;
StrAssign(t,"I am happy");
int StrAssign(String T,char *chars)
{
T[0] = strlen(chars); //下標為0存放數組長度
for(i=1;i<=strlen(chars);i++) //下標位置從1開始存放數據
{
T[i] = *(chars+i-1);
}
return 1;
}
(3)使用結構體類型(自定義類型)

#define MAXSIZE 20
typedef struct{
char ch[MAXSIZE];
int len;
}String;
其中:MAXSIZE表示串的最大長度,ch是存儲字元串的一維數組,len是字元串的長度
初始化函數示例:

String t;
StrAssign(&t,"I am happy");
int StrAssign(String *t,char *chars)
{
int i;
if(strlen(chars)>MAXSIZE+1) //字元串的長度大於數組的長度,操作失敗,返回0
return 0;
for(i=0;i<strlen(chars);i++)
{
t->ch[i] = *(chars+i);
}
t->len = strlen(chars); //數組的長度
return 1; //返回1,操作成功
}
說明:這里的StrAssign函數的參數t使用的是指針,是因為結構體變數做做形參,用法和普通變數一樣屬於值傳遞方式,在子函數中要給t賦值,所以輸入的是t的指針。與之對比的是(2)子函數中T是數組,傳入的是數組的首地址(改變形參也就改變了實參)。

————————————————
版權聲明:本文為CSDN博主「chenkaibsw」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/chenkaibsw/article/details/78957944

⑸ C語言計算字元串長度的幾種方法

C語言計算字元串長度,可以手動計算也可以使用庫函數或者sizeof()操作符。

方法:

  1. 自定義函數求長度

  2. 使用strlen()函數

  3. 使用sizeof()操作符


自定義函數:

sizeof(str)/sizeof(str[0]); //假設str為待求的字元串數組名

注意:

  1. strlen()函數求出的字元串長度為有效長度,既不包含字元串末尾結束符 『』;

  2. sizeof()操作符求出的長度包含字元串末尾的結束符 『』;

  3. 當在函數內部使用sizeof()求解由函數的形參傳入的字元數組的長度時,得到的結果為指針的長度,既對應變數的位元組數,而不是字元串的長度,此處一定要小心。

⑹ C語言sizeof是如何獲取大小的

buf是一個大小為1024的字元數組,存在於棧上,大小固定的;而p只是一個指向字元數組的指針,大小當然是4;buf2也只是一個字元指針,指向堆上的一片內存區

⑺ c語言如何求字元串長度

我的方法和樓上的大同小異用指針法:#include "stdio.h"
void main()
{char str[128];<br> char * p;<br> int count=0;<br> p=str;<br> gets(str);<br> while(*p++!='\0')<br> count++;<br> printf("%d",count);<br>}非指針法(這個方法是調用系統函數,比之自己寫的函數簡單明了):#include "stdio.h"
#include "string.h"
void main()
{char str[128];<br> gets(str);<br> printf("%d",strlen(str));<br> }

⑻ C語言中如何獲取數據長度

C語言中字元串有一個結束符'\0',一個正常的字元串的最後一個字元都是'\0',在你定義一個常量字元串時就自動幫你加上去了,比如"abc"其實有4個字元{'a', 'b', 'c', '\0'},最後一個'\0'表示字元串到這就結束了,以防止內存讀取越界,同時也以此來計算字元串長度,而不是再傳一個int參數表示字元串的長度。因此a在內存中長度為6,但由於最後一個字元'\0'只是結束符,所有一般說長度時會忽略掉最後一個字元
string.h中提供了strlen函數可以方便地計算字元串的長度,不過注意strlen返回值的類型為size_t,x64下定義為uint64_t,x86下為uint32_t,所以記得進行類型轉換
第一種:調用C庫函數strlen(頭文件<string.h>)
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char *a = "\x12\x00\x11\x00\x00";

printf("%d\r\n", (int)strlen(a));

return 0;
}
第二種:手動計算長度
#include <stdio.h>
int main(int argc, char *argv[])
{
char *a = "\x12\x00\x11\x00\x00";

char* p = a;

while ('\0' != *p)
{
p++;
}
printf("%d\r\n", (int)(p - a));
return 0;
}

⑼ c語言sizeof和strlen的區別是什麼

一、指代不同

1、sizeof:用於獲取字元串的長度,是處理字元串的重要工具。

2、strlen:所作的是一個計數器的工作。

二、規則不同

1、sizeof:可用於任何變數名、類型名或常量值,當用於變數名(不是數組名)或常量時,不需要用圓括弧。

2、strlen:從內存的某個位置(可以是字元串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字元串結束符''為止,然後返回計數器值。

定義

sizeof是C/C++中的一個操作符(operator),簡單的說其作用就是返回一個對象或者類型所佔的內存位元組數。

MSDN上的解釋為:The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type(including aggregate types). This keyword returns a value of type size_t。

⑽ c語言 獲取 字元串長度

在頭文件位置寫
#include<string.h>
然後在後面用b=strlen(a);
b是一個int型的變數 a是字元串或者字元數組得首地址,也就是名字比如a[20],