c - 字符串文字未正确打印出来

标签 c string struct

我试图在 C 中构建一个字符串,然后将该字符串存储在一个结构中。然而,当我构建我的字符串并将其打印出来进行测试时,我在正确的字符串之后得到了额外的难以理解的字符。任何建议都会很棒。

我的代码

typedef struct
{
    char *context;
    int numOnes;
    int numZeros;


}Pattern;
void getPrediction(int t,int *stream){
    int end = beg;
    int count = 0;
    char *pred, str[t+1];
    pred = str;
    int n = t;
    while(count<t){
        //printf("%d\n", stream[end]);
        if(stream[end] == 1){
            pred[count]= '1';
        }
        else{
            pred[count]='0';
        }
        end--;
        n--;
        count++;
    }
    printf("%s\n",pred);
    beg--;
    Pattern newPat={pred,1,0}; //testing purposes
    printf("%s\n",newPat.context); //testing purposes
}

最佳答案

printf("%s" 需要一个 string ,它被定义为一系列字符后跟一个空字符。您没有提供空字符.

要解决此问题,请在 printf 之前执行 pred[count] = 0;

关于c - 字符串文字未正确打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23285734/

相关文章:

c - 无法跳出 "while"循环 - C

java - 字符串到单词的 String[]

go - 在 Go 中表达函数的更好方法(结构方法)

string - Tcl 字符串转义

带指针的 C 深拷贝结构

ios - 用 Mantle 编码 c-struct (NSCoding)

c - 按顺序 fork 进程有 4 个子进程?

python - Haskell、python 和 c 中的函数之间的主要区别是什么?

c++ - 在 C 中使用 pow、XOR 或指针时出现段错误

swift - 在 Swift 3 中更新范围