1.16
- 关于算法笔记的gets函数不可用:改为
getline(cin,a)
用这个可以避免用cin
出现的空格读取不了的问题。 - 或者用:
cin.getline(字符指针(char*),字符个数N(int),结束符(char));
第一个参数为第一个读取的字符的位置,通常为数组名。
第二个参数为读取的字符的个数。
第三个参数是结束符,可以省略,省略则默认为回车键结束
1.17
- 关于控制格式输出:如果输出为中间有空格,但是最后一个数之后无空格,
可以先用for
循环求得总输出个数。
也可以用如下:
int flag=0;
for(int i=n-1; i>=0; --i)
if(!b[a[i]])
{
if(flag==1)
cout<<" "<<a[i];
else {
flag=1;
cout<<a[i];
}
}
今天跟学长聊了跨保的事情,感觉心里很没底呀。看了看别人的面试题,好像都很难的样子。无论如何加油吧!
1.18
今天出去吃酒了
1.19
今天少写了一个等于的条件,找了好久才找出来。
1.20
今日疑惑:为什么用for(;;)break;
就超时,用 while() break;
就不会。
1.21
今天遇到了int
和string
的相互转换
string to number
C++的标准库函数里面只提供了大量的从string to number的方法
C++中若需要将string类型转为int类型,需先将string转为const char*。
函数原型:
const char *c_str();
例如:
sting str="hello world";
int i = atoi(str.c_str());
String conversion | |
---|---|
atof | Convert string to double |
atoi | Convert string to integer |
atol | Convert string to long integer |
atoll | Convert string to long long integer |
strtod | Convert string to double |
strtof | Convert string to float |
strtol | Convert string to long integer |
strtold | Convert string to long double |
strtoll | Convert string to long long integer |
strtoul | Convert string to unsigned long integer |
strtoull | Convert string to unsigned long long integer |
number to string
但是如果想要将number转换成string,就麻烦了,网上大量的方法都是使用itoa()函数,但问题是,itoa()并不在c++的标准库当中,虽然大多数的compiler都支持,但是偶尔也会有compiler不认的情况。。比如我就遇到了。。
那么c++标准库函数当中有没有方法能实现number到string的转换呢?
答案就是这个函数:
int sprintf ( char * str, const char * format, … );
buffer是字符数组名;format是格式化字符串;
#include <stdio.h>
int main ()
{
char buffer [10];
sprintf (buffer, "%d\n", 65);
printf ("%s\n",buffer);
return 0;
}
参考文章:https://blog.csdn.net/founderznd/article/details/51587587
关于怎么去掉string前面的 ’0‘ ,然后输出:
while(ans.size()!=0&&ans[0]=='0'){
ans.erase(ans.begin());
}
if(ans.size()==0)
cout<<0;
else
cout<<ans;
ASCII码表
控制字符 | ASCII值 |
---|---|
0 | 48 |
A | 65 |
a | 97 |