當前位置:首頁 » 編程語言 » 用c語言指針計算字元串長度
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

用c語言指針計算字元串長度

發布時間: 2022-03-03 23:00:56

c語言計算字元串的長度(用指針)

#include<cstdio>

int main()

{

char s[20];

char*p;

printf("please input a string(less than 20 character): ");

//scanf("%s",s);不能讀入空格

gets(s);

p=s;

while(*p!='')

p++;

printf("The string lenth is%d ",p-s);

return 0;

}

printf()函數的調用格式為:printf("<格式化字元串>",<參量表>)。

其中格式化字元串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。

參量表是需要輸出的一系列參數,其個數必須與格式化字元串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。

比如:

int a=1234;

printf("a=%d ",a);

輸出結果為a=1234。

(1)用c語言指針計算字元串長度擴展閱讀:

main()函數的可以包括兩個參數

第一個參數的類型為int型;

第二個參數為字元串數組。

通常情況下,將第一個參數命名為argc,第二個參數為argv(當然參數名字可以換)。由於字元串數組有兩種表達方式,因此,main函數存在兩種書寫方法:

1、形式一:

int main(int argc,char*argv[])//這里使用char*argv[]

{

return 0;

}

2、形式二:

int main(int argc,char**argv)//這里使用char**argv

{

return 0;

}

使用方法

參數的含義

int argc:表示字元串的數量argc=1+用戶輸入的字元串數目,操作系統負責計算數量,程序員不用管,只需要正確使用即可,例如用戶輸入2個字元串,argc=1+2=3;

char*argv[]:字元串的數組,即多個字元串,形式如下:

argv[0]=可執行文件名稱,例如test.exe(非用戶輸入,操作系統根據可執行文件名稱自動生成)

argv[1]=字元串1

argv[2]=字元串2

argv[3]=字元串3

Ⅱ c語言 計算字元串長度

C語言的字元串是由字元數組形式保存的,並約定''(ascii碼值為0)作為字元串結束符。其長度為從字元串開始,到''結束,所有字元的個數,不包括''本身。

要獲得字元串長度,有兩種方法可以使用,使用庫函數strlen()。strlen聲明在string.h中,原型為int strlen(char *str);功能為求str的長度,並返回。對於字元串str, 可以用代碼求長度。當str[len]為0時,退出循環,退出後的len值就是str的長度。

拓展資料:使用strlen函數,包含在頭文件string.h里,功能就是計算字元串s的(unsigned int型)不包括''在內的長度。

Ⅲ 1. 編寫程序,計算一個字元串的長度。(利用指針變數)

for循環中,i先自加再判斷,在i=4時,循環繼續,之後i自加(i=5),再判斷不滿足條件,跳出循環。此時i已經等於5.所以輸出的就是5啦。

Ⅳ C語言,輸入字元串計算字元長度

你的代碼出現問題的原因是scanf("%s",&a);
,a是一個char類型的變數,系統為它分配了一個位元組的內存空間,但是你卻輸入了一個字元串到以a的地址為首地址的一段連續的內存空間里,這樣就出現了越界錯誤.但是printf函數並不檢查越界錯誤,它會按正常的方法執行,然後程序統計出長度,列印出來結果.但是返回到調用main函數的操作系統後,系統會發現越界錯誤,所以在結果顯示出來後才出錯.至於你說的輸入5個以下不會出錯,也許是偶然,也許跟你的編譯器有關.我用VS2005測試,只要輸入就會出錯。
如果你是只想求出輸入的字元串的長度而不要求保存輸入的字元串,下面的代碼更好。你的標准輸入緩沖區有多大,那麼它就可以求出多長的字元串的長度,不會有越界。
#include
int
main()
{
int
len=0;
//getchar()函數從標准輸入設備(即鍵盤)接收一個字元,返回該字元的ASCII碼.因為回車被輸入時被轉換成換行符(LF,ASCII碼為10),所以getchar()返回10時就知道輸入結束了.
while(getchar()!=10)
len++;
printf("It's
length
is
%d.\n",len);
return
0;
}

Ⅳ C語言,指針,用指針方法求字元串的長度,我的方法錯哪了

char*s1;//新製作了一塊門牌號,上面寫的是北大街S1號
gets(s1);//往門牌號里裝人
//s1僅僅是一塊門牌號而已,並沒有釘在一個房間上
//也就是說,正確的流程是:新做了一塊門牌號,並且要給它指定一個房間,門牌號才能代表這個房間,否則一個沒有掛在房間上的門牌號毫無意義.只能扔在庫房裡吃灰
------------------
char*s1;//新製作了一塊門牌號
s1=(char*)malloc(sizeof(char)*100);//給這塊門牌號新修一個房間,這個房間能裝100個char類型的人
gets(s1);//開始裝人.

Ⅵ C語言,用指針編寫一個求字元串長度的函數(不要用strlen函數)

int
strlen(char
*pchar)
{
int
nlen
=
0
;
while
(pchar[nlen]
!=
'\0')
{
nlen
++
;
}
return
nlen
;
}
因為字元串都是以一個\0結尾的
所以說計算出字元串長度的方法很多

Ⅶ 用C語言編程序:要求用指針方法處理:寫一函數,求一個字元串的長度。字串必須為char *str="

#include<stdio.h>
int mstrlen(char *str) { int k=0; while ( *str ) { k++; str++; } return k; }
void main()
{ char *str="1234abcd";
printf("字元串'%s'的長度為%d\n",str,mstrlen(str));
}

Ⅷ C語言:利用指針編寫程序,統計字元串的長度

#include <stdio.h>
int main()
{

char str[100];
gets(str);
char *s = str;
int count =0;
while(*s){
count++;
s++;
}
printf("Length of the string is %d\n",count);
return 0;
}

Ⅸ C語言,編程,用指針方法求字元串的長度,我這個錯哪了,求大神指導!

打錯字了.
p=NULL.
更正確的做法 應該是
free(p);
p=NULL;
演算法上沒什麼問題. 改成for(;*p; p++); 然後直接列印k更好一些.

Ⅹ c語言,用函數計算字元串長度

getchar()函數的原型是 int getchar( void )
返回值是整型的
功能是:從標准輸入中讀取一個字元,也就是鍵盤敲擊字元,只接收單個字元
可以用gets()函數來接收多個字元
這里的 s 接收的是該字元的ASCII碼,非長度。
如果從原基礎上改可以這樣
int i;
char s[20]; /*字元串需要長度*/
gets( s );
i = num( s );
int num( char *s ) /* 這里的指針 ,後面學得到*/
{
}
套上去就可以了