簡體   English   中英

將 int 轉換為字符串並將其連接到另一個字符串中(C 語言)

[英]Convert int to string and concatenate it in another string (C language)

我正在嘗試用 C 語言編寫代碼,以將以下一系列數字存儲在字符串“0.123456789101112131415 ...”中。

我試過這個代碼:

    char num[2000], snum[20];;
    
    num[0] = '0';
    num[1] = '.';
    
    for(int i = 1; i < 20; i++) {
        sprintf(snum, "%i", i);
        strcat(num, snum);
        printf("%s\n", num);
    }

我包括以下庫:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

當我打印變量“num”:“0”時,我得到了這個。 + 一些垃圾(有時我得到“0.N”,有時是“0.2”,有時是“0.R”,等等)。

我究竟做錯了什么?

正如大衛在評論中指出的那樣, strcat要求兩個字符串最后都有一個\0

在您的情況下,由sprintf生成的snum具有\0 但是, num沒有。

你可以做num[2] = '\0' 或者類似的東西

sprintf(num, "%i%c\0", 0, '.')

希望這能回答你的問題。

正如 David Ranieri 在評論中所說,你需要一個 NUL 來表示,所以修改代碼,你可以得到想要的結果

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
   char num[2000], snum[20];;
    
    num[0] = '0';
    num[1] = '.';
    num[2] = '\0';
    
    for(int i = 1; i < 20; i++) {
        sprintf(snum, "%i", i);
        strcat(num, snum);
        printf("%s\n", num);
    }
}

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM