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

c語言字元數組運算

發布時間: 2023-04-05 19:53:40

A. c語言字元數組怎麼用

C語言的字元數組有兩種,比較方式也有所不同。
1 字元串。
C語言的字元串是用字元數組表示的。約定以'\0'(ascii碼0)作為結尾標記。
對於字元串類的字元數組,可以用string.h中的strcmp函數進行比較。
int strcmp(char *str1, char *str2);
其比較規則為:
a, 從左向右依次比較每個元素;
b, 如果出現str1的元素ascii碼比較大,則返回1;如果出現str2元素ascii碼比較大,則返回-1。如果相等,則繼續。
c, 如果一直相等,直到遇到\0,這時檢查是否均為\0,如果均為\0,那麼返回0;
d, 如果str1到\0,而str2沒到,返回-1; 否則返回1。
總結規則就是,如果str1比str2大,返回1;如果相等,返回0;如果str1小,返回-1。

2 不帶\0結束的字元數組。
對於此類數組,沒有庫函數可供使用,只能自己寫函數進行比較。規則可以仿照strcmp的規則。
由於沒有\0作為結束,所以參數中必須傳入每個數組的元素個數。
int char_array_cmp(char *s1, int l1, char *s2, int l2)
{
int lmin = l1>l2? l2:l1; //較小長度者。
int i;

for(i = 0; i < lmin; i ++)
if(s1[i] > s2[i]) return 1;
else if(s1[i] < s2[i]) return -1;

//運行到這里,表示所有已判斷元素均相等。
if(l1 == l2) return 0;
if(l1 > l2) return 1;

return -1;//l1 < l2的情況。
}

B. c語言 字元數組問題 如何計算一個數組中有多少個單詞

首先
if(word=0)
else
if(word=1)
應該
改成==
其次
你設定的條件是
單詞在數組中用'
'間隔,當遇到'
'時你的代碼num自加。
個人建議
:將條件改成isspace函數.這樣不受輸入的限制,比如製表符等。這樣只要計算空白個數就可以了。應該優化不少。
至於如何一步一步的檢查,最開始學的時候敗坦最好別依賴編譯器。自己一行行槐賀看代碼,計算執行情況這樣的基本功。
當然,也可以使用編譯器。我用的是vc++6.0,本身自帶調試功能,可以設置斷點查看執行情況、查看執行出察明桐錯位置等。
啰嗦了,希望對你能有點幫助。

C. c語言計算字元數組的長度

1、在c語言中,可以通過庫函數strlen來計算字元串的長度,也可以通過循環計數來求取字元串長度。
函數原型:unsigned
int
strlen(char
*str);

能:統計字元串str中字元的個數,不包含'\0'


值:返回字元個數
2、用strlen函數實現:
char str[20];
int len; // 保存數組的長度
scanf("%s", str);
len = strlen(str); // 計算字元數組str的長度
註:需將頭文件#include
添加進源文件中。3、用循環來實現:
char str[20];
int len=0; // 保存數組的長度
scanf("%s", str);
while(str[len] != '\0') // 未檢測到結束字元
{
len++; // 統計字元數組str的長度
}

D. C語言中,如何「利用字元數組實現兩個大整數的加法」

#include <string.h>
#include <stdio.h>
void f1(char *a,char *b) //一個函數
{
char t[101];
if(strlen(a)<strlen(b)) //比較前的准備
{
t[101]=0;
strcpy(t,a); //把a中內容拷貝到字元串t中
strcpy(a,b);
strcpy(b,t); //以上三條實現a與b的交換
}
}
void f(char *t1,char *t)
{
int i,n;
n=strlen(t1); //n是字元串t1的長度
for(i=0;i<n;i++)
t[i]=t1[n-1-i]; //把t1中的內容賦給與它的下標對稱的下標t中
t[n]='\0'; //t最後一個位置賦結束字元
}
void f2(char *b,int q,int l)
{
char t[101]; //定義一個字元數組
int i;
for(i=0;i<q-l;i++)
t[i]='0';
t[q-l]='\0';
strcat(b,t); //把t連接到b去除結束字元『/0』的字元後,保持和字元串a長度一致,便於運算
}
void add(char *a,char *b,char *s,int q)
{
int i;
strcpy(s,a); //把字元串a拷貝到字元串s中
for(i=0;i<q;i++)
if(s[i]+b[i]>105) //判斷兩個數字的和是否大於十 ,若大於10考慮進位問題
{
s[i]+=(b[i]-58); //大於10進位,s[i]加上進位後的數字,運算後賦給s[i]
s[i+1]++; //s[i+1]進位加1,運算後賦給s[i]
}
else
s[i]+=(b[i]-48); //否則不進位,運算後賦給s[i]
}
void print(char *s)
{
int i,l;
l=strlen(s);
if(s[l-1]>'9'||s[l-1]<'0')
{
printf("1"); //列印1
for(i=l-2;i>=0;i--)
printf("%c",s[i]); //其餘的原樣輸出
}
else
for(i=l-1;i>=0;i--)
printf("%c",s[i]); //直接輸出
}

main()
{
char a[101],b[101],a1[101],b1[101],sum[101]={0};
int q,l;
printf("請輸入大整數字元a\n ");
gets(a1); //輸入字元a1
printf("請輸入大整數字元b\n ");
gets(b1); //輸入字元b1
f1(a1,b1);//調用函數f1
f(a1,a); //調用f
f(b1,b); //調用f
q=strlen(a); //q是字元串a的長度
l=strlen(b); //l是字元串b的長度
f2(b,q,l); //調用f2使a,b長度一致
add(a,b,sum,q); //調用add,運算a,b字元串的結果
printf("a+b=");
print(sum); //調用print函數
printf("\n");
}

我只把一些看起來需要注釋的都注釋了,一些特別簡單的基礎的·應該不用注釋了,實際上只要多看一些代碼,這些都是慢慢可以看懂得。

E. C語言中計算數組長度的方法是什麼

用 sizeof 可以獲得數據類型或變數在內存中所佔的位元組數。同樣,用 sizeof 也可以獲得整個數組在內存中所佔的位元組數。因為數組中每個元素的類型都是一樣的,在內存中所佔的位元組數都是相同的,所以總的位元組數除以一個元素所佔的位元組數就是數組的長度。

比較特別的是,比特右移(>>)運算符可以是算術(左端補最高有效位)或是邏輯(左端補0)位移。例如,將11100011右移3比特,算術右移後成為11111100,邏輯右移則為00011100。

運算符的優先順序從高到低大致是:單目運算符、算術運算符、關系運算符、邏輯運算符、條件運算符、賦值運算符(=)和逗號運算符。

C語言特點:

其一,廣泛性。C語言的運算范圍的大小直接決定了其優劣性。C語言中包含了34種運算符,因此運算范圍要超出許多其它語言,此外其運算結果的表達形式也十分豐富。

其二,簡潔性。9類控制語句和32個關鍵字是C語言所具有的基礎特性,使得其在計算機應用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同時還能夠支持高級編程,避免了語言切換的繁瑣。

F. C語言,字元數組的運算問題

#include棗鄭<stdio.h>
#include<stdlib.h>行爛
#include<string.h>

intmain()
{
chara[]="1100",b[]="1001";
inti;
for(i=0;a[i];i++)
printf("%d",!((a[i]-'0')^(b[i]-'0')));//取反檔岩漏!非
return0;
}