📄 rdstr.c
字号:
/******************************************* * * * 在x列y行处读一长length的字符串 * * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * * * * 遇回车结束,长度放在length中. * * * *******************************************/#include "../inc/screen.h" void wstrcpy(s1,s2,n)char *s1,*s2;int n;{ int i,j; for(i = 0; i < n; i++) s2[i] = SP; s2[i] = NUL; j = strlen(s1); if(j > n) j = n; for(i = 0; i < j; i++) s2[i] = s1[i];}void wstrcpyx(s1,s2,n)char *s1,*s2;int n;{ int i; for(i = 0; i < n; i++) s2[i] = s1[i];}clipped(str1,str2)char *str1,*str2;{ int slen,i; slen = strlen(str1); while(str1[--slen] == SP) ; if(slen > 79) slen = 79; for(i = 0; i <= slen; i++) str2[i] = str1[i]; str2[i] = NUL; return(i);}wlen(str)char *str;{ int slen; slen = strlen(str); while(str[--slen] == SP) ; return(slen + 1);}strgrep(str,pattern,length)char *str,*pattern;int length;{ int nn; nn = strlen(str); if(nn < length) length = nn; nn = strlen(pattern); if(nn < length) length = nn; for(nn = 0; nn < length; nn++) { if(str[nn] != pattern[nn]) return(FALSE); } return(TRUE);} rdstr(x,y,string,length)int x,y,length;char *string;{ int i; char str[81]; unsigned char ch; if(x < 0 || x > 79-length || y < 0 || y > 24 || length < 1 || length>80) return(ERR); i = 0; for(i = 0; i < length; i++) { str[i] = BLANK; } str[length] = NUL; i = 0; scp(x,y); do{ ch = wgetch(); switch(ch) { case BS: if(i > 0) { i--; str[i] = BLANK; scp(x + i,y); putchar(BLANK); scp(x + i,y); } else beep(1); break; case TAB: return(ABORT); case ESC: return(BKABORT); case AC_UPPER: return(UPPER); case AC_DOWN: return(DOWN); case AC_LEFT: return(LEFT); case AC_RIGHT: return(RIGHT); case AC_HOME: return(HOME); default: if(ch == LF) ; else if(ch < BLANK && ch >= NUL) beep(1); else if ( i < length ) { str[i] = ( char ) ch; i++; putchar(ch); } else beep(1); } }while(ch != CR && ch != LF); if(i) wstrcpy(str,string,length); else i=QUIT; return(i);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -