『壹』 c語言中如何識別字元與數字
你直接將每個字元挨個提取出來,將他賦給一個整型,c會自動將該字元轉化為asc碼值的。然後根據整型在去判斷它到底是數字還是字元還是空格,空格有特定的asc碼值
『貳』 c語言查找字元串
字元串在存儲上類似字元數組,所以它每一位的單個元素都是可以提取的,如s=「abcdefghij」,則s[1]=「b」,s[9]="j",而字元串的零位正是它的長度,c語言查找字元串方法為:
1、首先,定義一個字元數組變數,可以這么寫。
注意事項:
盡管形式字元串可以有任意(但有限)的長度,實際語言的字元串的長度經常被限制到一個人工極大值。有兩種類型的字元串數據類型: 「定長字元串」,它有固定的極大長度並且不管是否達到了這個極大值都使用同樣數量的內存。
『叄』 c語言判斷字元串是不是某個字元
字元串是一段連續的char型(在vc里有可能是雙字,用來顯示中文)字元1.如果是「判斷字元是不是某個字元」if (ch == 'A')ch為char型字元,scanf或者getchar來獲取。這里用'A'來表示「某個字元」2.如果是「判斷字元串里有沒有某個字元」for (i=0;i<len;i++){ if (*(str+i) == 'A') { }}len是字元串長度,str是char指針,指向字元串的首地址。『肆』 c語言從文件中查找字元串
c語言從文件中查找字元串的方法。
如下參考:
1.打開python命令窗口,定義並分配字元串變數s1。
『伍』 C語言中如何查找字元串
用strstr這個函數
包含文件:string.h
函數名: strstr
函數原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字元串在str1字元串中第一次出現的位置(不包括str2的串結束符)。
返回值:返回該位置的指針,如找不到,返回空指針。
源代碼:
#include<stdio.h>
#include<string.h>//調用string.h中的strstr函數
void main(){
char ch1[255]="abcde";
char ch2[100]="cd";
char* ch;//用於接受返回值
if((ch=strstr(ch1,ch2))==NULL){//說明沒有要找的字元串
printf("-1\n");
}else{//說明找到了那個字元串
printf("%d\n",ch-ch1+1);//cde的地址減去abcde的地址+1
}
}
『陸』 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語言中怎樣判斷一個字元串中是否包含另一個字元串
如果「一個字元串」全部是英文字元的話,只要開一個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;
}