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

c語言宏連接字元串

發布時間: 2022-02-08 00:59:03

c語言,將數字和字元串拼成一個字元串。用宏來做,用api誰都會!

宏定義字元串拼接可以使用宏運算##,即 #define strcat(x,y) x##y。

##運算符可以將兩個記號(例如標識符)「粘」在一起,成為一個記號。如果其中一個操作數是宏參數,「粘合」會在當形式參數被相應的實際參數替換後發生。考慮下面的宏:

#define MK_ID(n) i##n

下面的聲明使用MK_ID創建了3個標識符:

int MK_ID(1), MK_ID(2), MK_ID(3);

預處理後聲明變為:

int i1, i2, i3;

例如:

#include<stdio.h>
#definestrcat(x,y)x##y
intmain()
{
intstrcat(i,1),strcat(i,2);
i1=10,i2=20;
printf("%d%d",i1,i2);
return0;
}
/*運行結果:
1020
*/

⑵ C語言連接字元串函數

應該是可以的加上幾個printf看一下到底走到哪裡了,保證輸入的字元串不會越界也挺重要

⑶ C語言 連接符號 # ## 宏定義

您好,我來試著解答一下你的疑惑。

先上兩張圖:

這個說的很明白,#粘合後成為「字元串」,而##粘結後成為「記號」。

所以,"token" #n之後,比如"token" #8,會顯示為字元串"token8" ,這時調用"token8"[0],就相當於你取字元串"token8"中第一個字元,跟使用數組類似了(這一點存疑的話可以自己試驗,比如"abcde[2]"代表c,跟用字元數組是一樣的)。

但是"token" ##n之後,比如"token" ##8,會顯示為記號token8,這時的token8相當於變數名而不是一個字元串字面量,所以token8[0]當然就是指這個數組里第一個元素了。

若有疑問請提出...

您的採納是我們的動力~~

⑷ C語言 宏定義變字元串問題

宏不是函數,頂多可以用有參宏,但宏絕不是函數,宏,說白了,它的作用就是代碼字面上的替換

#define FUN() 「 !C*!D+A*!B*!D+!A*B*!C+A*B*C*D 」

char *str=FUN();

就完全等價於char *str=「 !C*!D+A*!B*!D+!A*B*!C+A*B*C*D 」 ;

⑸ c語言有沒有辦法在宏後面拼接一個字元串

沒有辦法,還是用函數實現吧,不行的話使用c++的string類型何以拼接字元串

因為c是變數,你要得到的拼接字元串卻在靜態存儲

c++string類型:
http://blog.csdn.net/fym0512/article/details/7708094

⑹ 用C語言怎麼將兩個字元串連接起來

這些是宏的功能。

#是將一個參數轉換為字元串。##可以連接字元串

比如這樣:

#include <stdio.h>

#define STR(a,b) a##b

int main()

{

printf("%s ",STR("123","456"));

return 0;

}

⑺ C語言:將兩個字元串連接起來。

這些是宏的功能。#是將一個參數轉換為字元串。##可以連接字元串 比如這樣:#include
<stdio.h>
#define
STR(a,b)
a##bint
main()
{ printf("%s
",STR("123","456"));
return
0;
}

⑻ C語言用宏實現將字元串與數字連接成一個字元串。其中數字是變化的。

這個是生澀的編譯器指令,告訴編譯器編譯的時候把前後兩部分合並到一塊。
編譯器工作的時候,首先把注釋行轉化為空格,按宏展開,處理預編譯信息;
例如:
#ch#ar 處理後就是 char。

⑼ C語言 宏定義字元串問題

用拼接符可以做到
#define STRING(arg) "AAAAAAA"##arg##"BBBBBBBBBB"
但arg必須是個常量,不能是變數

⑽ 基礎問題,C語言怎樣拼接兩個宏定義的字元串

宏定義的字元串 都是有""包含的

而在C中,兩個用""包含的字元串,在沒有任何可見字元(不包括空格,換行,tab)分隔,寫在一起的時候 會當做一個字元串處理

也就是

"abc""def"


"abcdef"

是等效的。

所以 兩個宏定義字元串,要拼接一起,直接寫就好了

#defineA"a123"
#defineB"b456"
printf("%s",AB);

輸出 a123b456