在字符串的末尾插入一个空格
我想知道如何在字符串文本中插入一个空格(在中定义)
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;
}
没有找到相关结果
已邀请:
1 个回复
犀寺扦
数组,其长度比参数字符串的长度大2个字节(因此空间和空终止符都有空间)。然后,调用
将参数字符串复制到新数组中,用空格覆盖倒数第二个索引,并将空终止符放入最后一个索引中。