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

字元串檢測c語言

發布時間: 2023-03-24 03:35:38

c語言中測試字元串長度的函數

C語言中測試字元串長度的函數是strlen()

函數原型:

unsignedintstrlen(char*s);

頭文件:

#include<string.h>

參數說明:s為指定的字元串;

功能說明:strlen()用來計算指定的字元串s 的長度,不包括結束字元'';

返回值:返回字元串s 的字元數;

注意:strlen() 函數計算的是字元串的實際長度,遇到第一個''結束。

示例:

#include<stdio.h>
#include<string.h>
intmain()
{
charstr[]="abcxyz";
printf("strlen(str)=%d ",strlen(str1));
return0;
}
//輸出結果:strlen(str)=6

⑵ 用C語言怎麼判斷一個字元串是否為空

空格不算是空字元串,str=""這樣的才算是空字元串,裡面什麼都沒有,而str=" "是有內容了,這個str存儲了一個字元(空格),如果你要把空格也算是空字元串,那麼要稍作修改:
char str[] = " ";
int len = strlen(str), i = 0;
if (len > 0)
{
while(i < len && str[i++] == ' ');
if (i < len) // 字元串不空
else // 空字元串
}

⑶ C語言中判斷兩個字元串是否相同的方法

C語言提供了幾個標准庫函數,可以比較兩個字元串是否相同。以下是用strcmp()函數比較字元串的一個例子:

#include <stdio. h>
#include <string. h>
void main (void);
void main(void)
{
char* str_1 = "abc" ; char * str_2 = "abc" ; char* str_3 = "ABC" ;
if (strcmp(str_1, str_2) == 0)
printf("str_1 is equal to str_2. \n");
else
printf("str_1 is not equal to str_2. \n");
if (strcmp(str_1, str_3) == 0)
printf("str_1 is equal to str_3.\n");
else
printf("str_1 is not equalto str_3.\n");
}

上例的列印輸出如下所示:
str_1 is equal to str_2.
str_1 is not equal to str_3.

strcmp()函數有兩個參數,即要比較的兩個字元串。strcmp()函數對兩個字元串進行大小寫敏感的(case-sensitiVe)和字典式的(lexicographic)比較,並返回下列值之一:
----------------------------------------------------
返 回 值 意 義
----------------------------------------------------
<0 第一個字元串小於第二個字元串
0 兩個字元串相等 ·
>0 第一個字元串大於第二個字元串
----------------------------------------------------
在上例中,當比較str_1(即「abc」)和str_2(即「abc」)時,strcmp()函數的返回值為0。然而,當比較str_1(即"abc")和str_3(即"ABC")時,strcmp()函數返回一個大於0的值,因為按ASCII順序字元串「ABC」小於「abc」。
strcmp()函數有許多變體,它們的基本功能是相同的,都是比較兩個字元串,但其它地方稍有差別。下表列出了C語言提供的與strcmp()函數類似的一些函數:
-----------------------------------------------------------------
函 數 名 作 用
-----------------------------------------------------------------
strcmp() 對兩個字元串進行大小寫敏感的比較
strcmpi() 對兩個字元串進行大小寫不敏感的比較
stricmp() 同strcmpi()
strncmp() 對兩個字元串的一部分進行大小寫敏感的比較
strnicmp() 對兩個字元串的一部分進行大小寫不敏感的比較
-----------------------------------------------------------------
在前面的例子中,如果用strcmpi()函數代替strcmp()函數,則程序將認為字元串「ABC」等於「abc」。

⑷ 在c語言中,如何編寫檢測輸入的字元串是否為字元。

#include
<stdio.h>
#include
<stdlib.h>
void
main(
)
{

printf("請數輸入一個字元:");

char
ch
=
getchar();

if(ch>=
'a'&&ch<=
'z')

printf("該字元是小寫字母");

else
if(ch
>=
'A'&&ch
<='Z')

printf("該字元是大寫字母");

else
if(ch>='0'&&ch
<='9')

printf("該字元是數字");

else

printf("該字元是其他字元")
;

printf("\n")
;

system("pause");
}

⑸ 在C語言中怎樣判斷一個字元串中是否包含另一個字元串

如果「一個字元串」全部是英文字元的話,只要開一個chars[128];的哈希表,每個在其中出現的字元按它的ASCII值,將相應的元素置為1;

然後掃描「另一個字元串」,檢測每一個字元,在數組中對應元素的值是否為1。若這個串里的對應元素值全部為1,則是「包含另一個字元串所有的字元」。

這個演算法的時間復雜度為O(n1+n2),n1和n2是二個字元串的長度。


#iclude<stdio.h>

int main()

{char s1[200],s2[200],s[128]={0};//初始化,所有字元均未出現

int i,k=1;

gets(s1);

gets(s2);

for(i=0;s[i];i++)

s1[s[i]]=1;//將字元串s1中出現的每一個字元,均「記錄在案」

for(i=0;s2[i];i++)

if(!(s[s2[i]]))k=0;//若s2中有字元在「記錄簿」中未出現,就作記錄

if(k)printf("s1包含了s2中的全部字元 ");//根據是否有記錄輸出相應記錄

elseprintf("s1未包含s2中的全部字元 ");

return 0;

}

⑹ c語言判斷怎麼判斷字元串

參考代褲前沒碼如下:

#include<stdio.h>
intmain()
{
charstr[300]="2y1";
charc;
int胡納i=0,flag=0;

c=str[0];
if(c=='Y'||c=='N'||c=='2'){
//M1先說話
flag=1;
for(;;){
switch(c){
case'Y':
case'N':
c=str[i+1];
if(c!='Y'&&c!='N'&&c!='2')
flag=0;
break;
悔漏case'2':
c=str[i+1];
if(c!='y'&&c!='n'&&c!='1'&&c!=0)
flag=0;
break;
case'y':
case'n':
c=str[i+1];
if(c!='y'&&c!='n'&&c!='1')
flag=0;
break;
case'1':
c=str[i+1];
if(c!='Y'&&c!='N'&&c!='2'&&c!=0)
flag=0;
break;
case0:break;
default:flag=0;
}
if(flag==0||str[i]==0)
break;
else{
++i;
c=str[i];
}
}
}
if(flag==1)
printf("%s是對話",str);
else
printf("%s不是對話",str);
return0;
}

⑺ C語言求解一個關於檢測字元串長度的問題

#include<stdio.h>
#include<string.h>


intgetInputSize(void);
voiddeal(intsize);
voidclearInputStream(void);
intmain(void)
{

intsize=getInputSize();

deal(size);


return0;
}


voiddeal(intsize)
{
charstrBuffer[1000];

for(inti=0;i<size;++i)
{
gets(strBuffer);//gets是基於行的讀取函數,一直讀取到換行符,才結束。
//它會消耗換行符,所以不用清理
printf("case%d:length=%d. ",i+1,strlen(strBuffer));

}



}


intgetInputSize(void)//獲取輸入的字元串的個數
{
intsize=0;
scanf("%d",&size);

clearInputStream();//scanf是基於單詞的讀取函數,以空白符為分界線。
//讀取後,需要清理輸入隊列中的殘余的換行符
returnsize;

}

voidclearInputStream(void)
{
while(' '!=getchar());

}

⑻ c語言c語言編寫函數檢查字元串否包含全部小寫字母和空格

1. #includevoid count(char *str);int letters=0,space=0,digit=0,others=0;int main(void){ char str[100]; printf("Input a string:\兄賀n"); gets(str); count(str); printf("char=%d\nspace=%d\ndigit=%d\nothers=%d\n",letters,space,digit,others); return 0;}void count(char *str){ while(*str!='\0') { if(*str>='a'&&*str='A'世檔&&*str='0'&&*str='a'&&*str='A'&&*str=搜塵亂'0'&&*str<='9') digit++; else others++; str++; } printf("char=%d\nspace=%d\ndigit=%d\nothers=%d\n",letters,space,digit,others);}

⑼ c語言怎麼檢測輸入字元串的個數

#include"stdio.h"
intmain(intargc,char*argv[]){
charch,m,t;
printf("Pleaseentersomestring... ");
m=0,t='';
while((ch=getchar())!=' '){
if(t==''&&ch!='')
m++;
t=ch;
}
printf(" Youenter%dstring(s),itis'%c'end ",m,t);
return0;
}

運行樣例: