在字符串的末尾插入一个空格

我想知道如何在字符串文本中插入一个空格(在中定义) char * text = argv [1];) 例如,如果写: ./mar“你好,你好吗” 我想看看/ 您好,你好,你好,你好,你好你好,你好,你好吗? 并不是 你好,你好。你好,你好。你好,你好。你好,你好,你好,你好吗? 在cli中水平滚动。 代码是:
/*mar.c*/
#include <curses.h>
#include <unistd.h> // For sleep()
#include <string.h> // For strlen()
#include <stdlib.h> // For malloc()
#include <sys/select.h>

int main(int argc, char* argv[])
{

char *text = argv[1];
char *scroll;
int text_length;
int i,p, max_x, max_y;


// Get text length
text_length = strlen(text);

// Initialize screen for ncurses
initscr();

// Don't show cursor
curs_set(0);

// Clear the screen
clear();

// Get terminal dimensions
getmaxyx(stdscr, max_y, max_x);

scroll = malloc(2 * max_x + 1);

for (i=0; i< 2*max_x; i++) {
    getmaxyx(stdscr, max_y, max_x);    
    scroll[i] = text[i % text_length];
}

scroll[2*max_x - 1]='';


// Scroll text back across the screen
p=0;
do{
        getmaxyx(stdscr, max_y, max_x);
        mvaddnstr(0,0,&scroll[p%max_x], max_x);
        refresh();
        usleep(40000);
    p=p+1;
// Execute while none key is pressed   
}while (!kbhit());

endwin();
return 0;
}

int kbhit(void)
{
struct timeval tv;
fd_set read_fd;

tv.tv_sec=0;
tv.tv_usec=0;
FD_ZERO(&read_fd);
FD_SET(0,&read_fd);

if(select(1, &read_fd, NULL, NULL, &tv) == -1)
return 0;

if(FD_ISSET(0,&read_fd))
return 1;

return 0;
} 
    
已邀请:
您需要分配一个新的
char
数组,其长度比参数字符串的长度大2个字节(因此空间和空终止符都有空间)。然后,调用
strcpy
将参数字符串复制到新数组中,用空格覆盖倒数第二个索引,并将空终止符放入最后一个索引中。     

要回复问题请先登录注册