空缺角色没有出现在cout中

时间:2017-12-11 21:26:40

标签: c++

在这段代码中,我向您展示我知道字符串数组应该以NULL字符结尾。

#include <iostream>    
void main(){
    char c[4] = { 'a','b','c', '\0'}; //OR char c[4]={'a', 'b', 'c'}
    std::cout << c << "d";
}

输出是:&#34; abcd&#34; - 我期待的是:&#34; abc d&#34;

在这篇文章中,我被告知字符串在cpp中以NULL字符结尾。

#include <iostream>
#include <string>
void main() {
    string c = "abc";
    std::cout << c << "d";
}

输出是:&#34; abcd&#34; - 我期待的是:&#34; abc d&#34;

2 个答案:

答案 0 :(得分:1)

您的帖子的答案是import pandas as pd import matplotlib.pyplot as plt from PIL import Image import numpy as np import wordcloud from wordcloud import WordCloud,STOPWORDS # Read the whole text. remarks = open(r'C:\Users\marmar\Documents\Remarks.txt').read() #Create words over an image mask = np.array(Image.open(r'C:\users\marmar\Documents\cloud.png')) #set the stopwords list stopwords= set(STOPWORDS) #append new words to the stopwords list new_words =open(r'C:\Users\marmar\comments.txt').read() new_stopwords=stopwords.union(new_words) #generate the word cloud with parameters wc = WordCloud(background_color="white", max_words=2000, mask=mask, min_font_size =12, max_font_size=20, relative_scaling = 0.5, stopwords=new_stopwords, normalize_plurals= True) wc.generate(remarks) plt.figure(figsize=(25,25)) plt.imshow(wc, interpolation="bilinear") plt.axis("off") #Show the wordcloud plt.show() 不是空格,因此您的输出是正确的。

希望这会有所帮助。

答案 1 :(得分:1)

&#34;字符串&#34;当表示为一个字符序列(如char c[4]中)时,由一个特殊字符终止,您可以将其称为NULL字符(实际上是'\0')。由于像char c[4]这样的数据类型没有维护有关字符串长度的任何其他信息,因此遵循的惯例是函数将char[]类型的对象解释为字符串,以及#34;知道停止的位置& #34 ;. cout将类型char[]的输入解释为此类字符串,并在输出此字符之前停止,即它不会打印空格或其他内容。因此,字符'c'将是最后一个要打印的字符,当之后立即打印"d"时,不会出现任何人员。

请注意char c[4]={'a', 'b', 'c'}也可以,但原因有点微妙。以这种方式初始化字符序列 - 即使您在大括号初始值设定项中传递的字符少于声明为数组大小的字符 - 将隐式使用'\0'填充数组。所以它有效。相反,char c[4]={'a', 'b', 'c', 'd'}一旦在期望'\0' - 终止字符串的函数中使用此字符序列,将产生未定义的行为。