c語言基礎問題如何合併字元,C語言怎麼合併兩個字串

2022-06-09 17:56:38 字數 6037 閱讀 2247

1樓:匿名使用者

以下**,可以達到你的要求

#include

int main()

printf( "num=%d\n", num );

table[0] = 'a' ;

table[1] = 'b' ;

table[2] = 'c' ;

for( i=0;i<3;i++ )

str[i]='\0' ;

printf( "str=%s\n", str );

return 0;}

2樓:匿名使用者

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

unsigned char table[3];

int main()

printf("%d\n",ans);

table[0] = 'a';

table[1] = 'b';

table[2] = 'c';

table[3] = '\0';

printf("%s",table);}

3樓:

unsigned char table[4]table[0] = '2';

table[1] = '3';

table[2] = '4';

table[3] = '\0';

//1、如何將其進行組合獲得int型數字 234 ?

int i = atoi(table);

4樓:匿名使用者

1.int i = 0;

i = (table[0]-'0')*100 + (table[1]-'0')*10 + (table[2]-'0');

2.char str[4];

strncpy( str, table, 3 );

str[3] = 0;

5樓:一中吧真河蟹

#include

int main(void)

;int i;

for(i = 0;i<3;i++)

return 0;}

6樓:

table 就是字串 「234」 和 「abc」

可以輸出

printf("%s",table);

就可以看到結果了。

要是想把「234」用到數字上,得先轉為數字。

7樓:子水消燈

int chartoint(char ch[3])

void chtos(char *s,char ch[3])

}你試一下看行不行

8樓:怪俠一枝花耶

對於第一個問題可以直接這樣:int i=table[0]*100+table[1]*10+table[2].

對於第二個問題,c語言中一個字元陣列就是一個字串,根本不需要合併。這個字元陣列的名字就指向這個字串的首地址。順便說下c語言中沒有字串這個型別的。

9樓:

可以使用庫函式來實現字串到數字的轉換:

#include

int i = atoi(table); //函式原型為:int atoi(const char*str)

long l = atol(table);//函式原型為:long atol(const char*str)

double d = atof(table);// double atol(const char*str)

至於轉換成char字元,可直接用strcpy函式

char str[20];

strcpy(str,table);//將table陣列中的字元複製到str中,注意table必須以'\0'結束

puts(table);

10樓:猛龍

(table[0] - '0') * 100 + (table[1] - '0') * 10 + (table[2] - '0') * 1      就得到了int 型234

table陣列名就是字串「abc」的地址,可以直接使用。

比如,你可以直接printf("%s", table),輸出字串「abc」

11樓:

1 轉變為int數字

int n;

table[0] = '2';

table[1] = '3';

table[2] = '4';

table[3] = '\0';

n=(table[0]-48)*10*10+(table[1]-48)*10+(table[2]-48);

printf("%d\n",n);

2 char型字串

c沒有字串char,只能用陣列表示,用字串方式輸出char m[3];

table[0] = 'a';

table[1] = 'b';

table[2] = 'c';

table[3] = '\0';

for (i=0;i<=3;i++) m[i]=table[i];

printf("%s\n",m);

即可實現一個新的陣列來進行組合

12樓:

((table[0]*10+ table[1])*10+table[2]=234。

char a[4];a[0]=table[0];a[1]=table[1];a[2]=table[2];a[3]='\0';就組成了字串abc。

13樓:

第一個轉換

定義一個陣列來存放

假設找到c[2] ~c[5]是一個四位數6789下標m==2,n==5(m做頭下標,n做尾下標)int a[10];

用迴圈把c[2] ~c[5] 分別減掉48

賦給a[0]~a[3]

,(a[0]做最高位)

再用迴圈累加

int sum=a[3];

for(i=2;i>=0;i-- )

/*如果把sum=a[3];改成sum=a[n-m];這個初值,改成一般的方法是

用n-m-1,找到的數是用n-m+1位的,從a[0]到a[n-m-1]存放從十位起的所有高位,各位則存放在a[n-m]*/

第二個轉換字元陣列本身就是字串,只是比字串多了一個\0,直接把陣列table[2]等於字串變數就可以了

char temp="hello ";

string str = string(temp);

14樓:匿名使用者

int型數字:

int a=atoi(table);

字串:不用組合,就是陣列名table:

char b=table;

a是234 b是"abc"

15樓:劉海兒孫子

table陣列大小不合理,應該至少有4個sizeof(char)大小才行.

1、int數由個十百千...位組成。所以234可以這樣得到:

(table[0] * 10 + table[1])* 10 +table[2] = (2*10+3)*10+4=234。

2、可以先定義一個字元陣列用來存放字串。char newstr[4]; newstr[0] = table[0],newstr[1] = table[1], newstr[2] = talbe[2]; newstr[3] = '\0';注:newstr[3]='\0'的作用是註明字串已結束,否則程式不知道什麼時候讀完newstr陣列。

這樣就可以得到abc串了。

16樓:常玉標

把字元轉化為數字就行了, 將 字元- '0' 就行了

17樓:匿名使用者

問題一: atoi(table) 便可以獲得int型數字234,不過這個是微軟弄的函式,不在ansi標準中,如果你用的不是vc的話,就只能自己編了。如下:

int myatoi(char *p)

這個函式的返回值就是int型數字234

問題二:

c語言是沒有char型字串的哦

c語言中其實甚至連字串型別都沒有。在c語言中,使用字串時都是用指標來引用的,陣列名可退化為指標,所以table其實就是字串「abc」,不需要再組合啦

如:printf(table);

就可以輸出abc這個字串

哎呀我沒太說明白,不過你明白點沒?

18樓:時間屬於你

c++沒有 string型別,給table加上table[3] = '\n' 就是字串了可以直接訪問 table,char*轉int用atoi()就可以

19樓:篤俠

1.d=(table[0]-'0')*100+(table[1]-'0')*10+(table[2]-'0');

2.char table[4];

table[0] = 'a';

table[1] = 'b';

table[2] = 'c';

table[3] = '\0';

這時,table計算字串了。

20樓:匿名使用者

void main()

問題2:已經是字串了,不用變數

21樓:匿名使用者

第一個問題

#include

int get_number(unsigned char table,int size)

return number;

}int main()

第二個問題

table不就是char字串嗎

c語言怎麼合併兩個字串?

22樓:墨汁諾

**:bai

char str1="123";

char str2="abc";

strcat(str1,str2);

printf("%s",str1);

例如:#include

#include

main()

擴充套件資料du:字串在儲存上類似字zhi符陣列,它每dao一位單個元素都是能提取的專,字串的屬零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入陣列。

通常以串的整體作為操作物件,如:在串中查詢某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字串相等的充要條件是:

長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的儲存方式是順序儲存方式和連結儲存方式。

23樓:田真久

char str1[7]="123";

char str2="abc";

strcat(str1,str2);

printf("%s",str1);

24樓:龍哥的賬號

如果想要合併兩個字元的話是非常難的,而且非常難辦。

25樓:聽不清啊

先加標頭檔案

du#include

char a[10]="123";

char b[10]="abc";

strcat(a,b); //連線zhi兩個字串dao,連線後的字串存回放在a中,陣列a中有答足夠空間

printf("%s",a); //輸出連線後的字串或:#include

char a[10]="123";

char b[10]="abc";

char c[20];

strcpy(c,a); //把串a複製到有足夠空間的c中

strcat(c,b); //把b連線到c的串尾

c語言字元問題顯示出漢字,c語言輸出字串陣列出現亂碼

使用wchar型別處理寬字元型別試試,漢子屬於寬字元。include stdio.h 應該是 include c語言輸出字串陣列出現亂碼 c語言字串以 0 結尾,如果不以該符號結尾則輸出 s時會出錯,程式一直往存放字串的地址訪問。而你的程式中並沒有賦 0 給那兩個陣列,所以會出現亂碼。沒有出現亂碼的...

c語言基礎問題,求大佬求解,C語言問題,求大佬解答

第一個程式裡,y 表示先減一,然後再在y 3中使用y,所以y的值為9,所以最終結果為741。第二個程式中,k 表示先使用,然後再加一,所以k的值為3,而 k表示先減一,然後再使用,所以最終結果為2。表示式y 3僅僅是將y對3取餘,沒有改變變數y的值 寫成y y 3才會改變y的值 c語言問題,求大佬解...

C語言字串陣列問題

c語言中,賦值 與 賦初值 又叫初始化 是不一樣的。在定義變數的同時賦值,叫賦初值,而定義後賦值就是普通的賦值了。你說的 不能用賦值語句將一字串常量或字元陣列直接賦值給一個字元陣列 這句話是說普通賦值的情況,也就是,不能定義一個字元陣列以後,再給他直接賦值。而 char s 12345 這個語句,是...