導航:首頁 > 編程語言 > 編程判斷是否構成合法c標識

編程判斷是否構成合法c標識

發布時間:2022-04-18 20:02:50

Ⅰ c語言中怎樣才算是合法標識符

在計算機高級語言中,用來對變數、符號常量名、函數、數組、類型等命名的有效字元序列統稱為標識符。

C語言中規定標識符只能由字母、數字和下劃線3種字元組成,且第一個字元必須為字母或下劃線。

Ⅱ C語言中,用戶定義的標識符,怎樣才算合法

C語言中,用戶定義的標識符,合法條件:

第一:組成標識符的字元必須是英文字母、數字、下劃線,不可以是其他字元。

第二:標識符必須以以字母或下劃線開頭(大寫小寫字母都可以)。

第三:標識符區分大小寫。

第四:標識符不能使用關鍵字。

(2)編程判斷是否構成合法c標識擴展閱讀:

在程序設計語言中,標識符是用作程序的某一元素的名字的字元串或用來標識源程序中某個對象的名字的。這個元素可以是一個語句標號,一個過程或函數、一個數據元素(例如一個標量變數或一個數組)或程序本身。

標識符這個字幾乎與變數名同義地使用。在程序數據的位置在整個程序執行期間保持不變的系統中,用於標量變數的標識符聯繫到存儲器地址,而存儲器地址又指向機器的存儲器內的物理單元,該單元又含有一個值的表示。標識符與一個值之間的中間關系通常對程序員是透明的,因此在實際中在一個變數的名字(即其標識符)與其值(它是分配給該標識符的存儲單元的當前內容)之間出現混淆。

Ⅲ 輸入一個字元串,判斷其是否是C的合法標識符。用c語言編寫程序。

C語言合法標識符由數字,字母,下劃線組成。

且第一個字母不能為數字。

於是,根據其定義,可以進行判斷,代碼如下:

#defineis_upper(x)(x>='A'&&x<='Z')//大寫字母判斷。
#defineis_lower(x)(x>='a'&&x<='z')//小寫字母判斷。
#defineis_char(x)(is_upper(x)||is_lower(x))//字母判斷。
#defineis_num(x)(x>='0'&&x<='9')//數字判斷。
#defineis_down_link(x)(x=='_')//下劃線判斷。

intcheck_first_char(charx)//判斷第一個字元是否合法。
{
returnis_char(x)||is_down_link(x);//當為字母或下劃線時合法。
}

intcheck_other_char(charx)//判斷其它字元是否合法。
{
returnis_char(x)||is_down_link(x)||is_num(x);//當為數字,字母或下劃線時合法。
}

intcheck(char*str)//判斷標識符str是否合法,如果合法返回1,否則返回假。
{
inti;
if(check_first_char(str[0])==0)return0;//檢查第一字元。
for(i=1;str[i];i++)
if(check_other_char(str[i])==0)return0;//檢查其它字元。

return1;
}

intmain()
{
charid[200];
scanf("%s",id);//讀入標識符。
if(check(id))//進行判斷並輸出結果。
printf("標識符合法 ");
elseprintf("標識符非法 ");
}

Ⅳ 判斷是否為C語言的合法標識符

這不是小問題啊……你這個問題很大啊……

#include<stdio.h>
#include<string.h>
intmain()
{
charstr[1000][80];
inti,j,k,n,flag=1,len;
scanf("%d",&n);
for(j=0;j<n;j++)
{
/*不要k循環。80代表字元串的最長長度,但是字元串也可能不到80個字元,所以不應該一個個字元的讀入,而且%s代表讀入一整個字元串而不是一個字元。所以應該讀入到str[j]里。前面不用&號因為str[j]已經是地址了。*/
scanf("%s",str[j]);
}
/*我幫你調了縮進,你看一下是不是清晰了很多……最內層的else如果print0之後break,後面還會print1。這是最大的問題*/
/*我們用一個flag變數代表當前字元串是否合法。1代表合法,0不合法,最後統一輸出即可。*/
for(j=0;j<n;j++)
{
k=0;
flag=1;
if(str[j][k]==95||str[j][k]>64&&str[j][k]<91||str[j][k]>96&&str[j][k]<123)
{
/*我們不知道字元串有多長。所以k<80不行。*/
len=strlen(str[j]);
for(k=1;k<len;k++)
{
if(str[j][k]==95||str[j][k]>64&&str[j][k]<91||str[j][k]>96&&str[j][k]<123||str[j][k]>47&&str[j][k]<58)
continue;
else
{
flag=0;
break;
}
}
}
else
flag=0;
printf("%d ",flag);
}
return0;
}

最後再補充幾點,

  1. 不用統一輸入統一輸出。輸入一個字元串,處理,輸出,再輸入下一個即可。

  2. || && 一起用的時候加括弧,避免潛在的邏輯錯誤

  3. 用'A'來取A字元的ascii碼。你就不用去查表了。而且就算你要直接用ascii值,str[j][k]>=48也比str[j][k]>47可讀性大很多。

    所以你這里完全可以寫成

    str[j][k]>='A'&&str[j][k]<='Z'

Ⅳ 編程判斷其是否是C的合法標識符

你的字元串數組用錯了
應該是 char str[50];
方法還行
但是主函數應該是 int main()
最後返回 return 0;
否則 提交有錯誤 做題時 不能馬虎啊 呵呵

Ⅵ C語言程序題 判斷合法標識符

#include<stdio.h>
#include<string.h>
intmain()
{
intrepeat,L,judger;
chara[100][80];
scanf("%d%c",&repeat,&a[0][0]);
for(inti=0;i<repeat;i++)
{judger=0;
gets(a[i]);
if((a[i][0]=='_')||(a[i][0]>='A'&&a[i][0]<='Z')||(a[i][0]>='a'&&a[i][0]<='z'))
judger=1;
L=strlen(a[i]);
for(intk=1;k<L;k++)
if(!(a[i][k]=='_'||(a[i][k]>='A'&&a[i][k]<='Z')||(a[i][k]>='a'&&a[i][k]<='z')||(a[i][k]>='0'&&a[i][k]<='9')))
judger=0;
if(judger==1)
printf("Yes ");
elseif(judger==0)
printf("No ");
}

}


Ⅶ c語言判斷是否合法的標識符.

c++裡面的標識符是以字母或下滑線打頭,後面加上任意數字,字母,下劃線.ff
ai_2裡面有個空格,所以不是標識符.
畫個有限狀態自動機就很清楚了
比如s代表開始狀態,s1代表標識符首字合法狀態,es代表輸入合法,ef代表輸入非法.a代表字母或下滑線,
b代表任意數字,字母,下劃線,e代表結束符,那麼自動機如下
s下輸入字元屬於a的話進入s1,否則經入ef;
s1下輸入字元屬於a或b,進入es,否則進入ef
es下輸入字元屬於a或b,進入es,否則進入ef
ef下輸入結束符號,進入最終狀態,並且得到輸入的不是標識符
es下輸入結束符號,進入最終狀態,並且得到輸入的是標識符

Ⅷ 1、C語言合法標識符:輸入一個字元串,判斷其是否是C的合法標識符

1、使用中文當標識符,其前提是編譯器支持中文當標識符,C++11之後,通用字元名覆蓋到了漢字。

Ⅸ 如何判斷c語言中合法的標識符

只能由字母/數字/下劃線構成,數字不能開頭,不能用32個關鍵字做標識符

閱讀全文

與編程判斷是否構成合法c標識相關的資料

熱點內容
安卓qq瀏覽器怎麼轉換到ios 瀏覽:292
不同編譯器的庫可以調用嗎 瀏覽:455
灰度信託基金加密 瀏覽:421
宿遷程序員兼職網上接單 瀏覽:924
電視編譯器怎麼設置 瀏覽:276
手機如何解壓漢字密碼的壓縮包 瀏覽:701
為什麼很多程序員愛用vim 瀏覽:828
安卓手機怎麼連接寶華韋健音響 瀏覽:555
12星座製作解壓球 瀏覽:867
java調用oracle數據 瀏覽:827
怎麼在伺服器上上傳小程序源碼 瀏覽:304
空中加油通達信指標公式源碼 瀏覽:38
分卷解壓只解壓了一部分 瀏覽:760
php網站自動登錄 瀏覽:705
合肥凌達壓縮機招聘 瀏覽:965
怎麼找到文件夾的圖標 瀏覽:237
linuxc編程pdf百度雲 瀏覽:192
會計pdf下載 瀏覽:835
c開源cf源碼 瀏覽:951
如何取消掉添加進app資源庫 瀏覽:732