c++ string 怎么输入(不要cin)

学术版

@[chenpengda](/user/136931) 不习惯,还有别的吗?
by yangzhiqin @ 2019-12-13 20:45:48


```cpp for(int i=0;i<s.size();i++) putchar(s[i]); ```
by JS_TZ_ZHR @ 2019-12-13 20:45:51


@[yangzhiqin](/user/140411) printf("%s",s.data());
by qsmoonzh @ 2019-12-13 20:46:07


```cpp #include<bits/stdc++.h> using namespace std; int main() { char a[10]; gets(a); puts(a); return 0; } ```
by chenpengda @ 2019-12-13 20:48:13


@[chenpengda](/user/136931) gets不是有漏洞吗?
by 已注销HeBhs37KwrDer @ 2019-12-13 20:55:41


~~溜了溜了~~
by chenpengda @ 2019-12-13 21:09:06


``` scanf(" %s",str); scanf(" %s",str+1);//下标从1开始 ```
by ywr8 @ 2019-12-13 21:21:25


可以考虑读入char数组,随后用char数组来初始化string 唯一用处就是防止使用cin吧…… ```cpp #include <cstdio> #include <string> using namespace std; const int maxlen = 100000; void read(char *s) { static char c; for(c = getchar();c<'a'||c>'z';c=getchar()); for(;c>='a'&&c<='z';*++s=c,c=getchar()); *++s = '\0';//注意加一个终止符避免重复读入出错 } //如果想要读入一整行的话: void readline(char *s) { static char c; for(c = getchar();c == '\n' || c == '\r';c=getchar()); for(;c != '\n' && c != '\r';*++s = c,c=getchar()); *++s = '\0'; } char buf[maxlen]; int main() { readline(buf); string s = string(buf+1); for(string::iterator it = s.begin();it!=s.end();++it) putchar(*it); return 0; } ```
by Clouder @ 2019-12-13 21:36:55


上一页 |