如何在QString中删除asctime中的换行符

goG*_*Gud 2 c++ qstring qt

我正在将time_t转换为人类可读的格式.为此,我正在使用asctime()功能.但是在c ++参考文献中也提到了它.

该字符串后跟一个换行符('\n'),并以null字符结尾.

我知道如果我使用char指针,我可以删除'\n'字符.如;

char * str; 
str(strlen(str)-1) = '\0'; // repleacing new-line char to null-char
Run Code Online (Sandbox Code Playgroud)

但是如何删除QString中的换行符?这是我的榜样;

    time_t rawtime;
    struct tm * timeinfo;
    QString strList;
    rawtime = 1430687052;
    timeinfo = localtime (&rawtime);
    strList += asctime(timeinfo);
Run Code Online (Sandbox Code Playgroud)

编辑:

我正在创建报告文件,所以我在我的内容中有很多'\n'字符QString,这就是为什么将所有'\n'char替换为空指针不是一个好主意.

vah*_*cho 7

我会使用QString::trimmed()function 删除所有尾随和前导空格字符,例如 '\t'、'\n'、'\v'、'\f'、'\r' 和 ' '。IE:

strList = strList.trimmed();
Run Code Online (Sandbox Code Playgroud)


Mar*_*k R 5

告诉我为什么在使用Qt时使用C标准API?你有很棒的Qt API来处理日期.

QDateTime time;
uint rawtime = 1430687052;
time.setTime_t(rawtime);
QString humanDate = QLocale::system().toString(time, QLocale::ShortFormat);
Run Code Online (Sandbox Code Playgroud)


要删除概念中的换行符,只需使用QString :: trimmed(从前面和后面删除任何白色字符).