文章目录
文件尾循环控制
C
1.gets()函数,读取一行
char * str;
while(gets(str)!=NULL){}
2.scanf()
while(scanf(“%s”,str)!=EOF)){};
C++
1.getline()
string str;
while(!cin.eof()){getline(cin,str);}
2. cin
string str;
while(!cin.eof()){cin >> str;}
string与char的转换
string转char*
c_str函数
string str=“world”;
const char *p = str.c_str();//要加const或者等号右边用char*
char * 转string
可以直接赋值。
string s;
char *p = "hello";//直接赋值
s = p;
string转char[]
这个由于我们知道string的长度,可以根据length()函数得到,又可以根据下标直接访问,所以用一个循环直接赋值就可以。
string pp = "dagah";
char p[8];
int i;
for( i=0;i<pp.length();i++)
p[i] = pp[i];
p[i] = '\0';
printf("%s\n",p);
cout<<p;
char[]转string
这里可以直接赋值。
C++ string与int的转换
int转string
std::to_string
int a=10;
string str = to_string(a);
string转int
std::stoi,std::stol,std::stoll
std::string str1 = "45";
std::string str2 = "3.14159";
std::string str3 = "31337 with words";
int myint1 = stoi(str1);//45
int myint2 = stoi(str2);//3
int myint3 = stoi(str3);//31337
c++与其它类型的数字转换
C语言字符串与整数的转换
char*转double
头文件#include<stdlib.h>/include
原型:double atof(const char *nptr);
作用:把字符串转换成浮点数,直至遇到第一个空格。
int转char*
头文件#include<stdlib.h>/include
原型:char* itoa(int value,char* string,int radix);其中,value是要转换的整数值,string是存储转换后值的字符数组,radix代表进制,radix=10就是十进制,radix=2就是二进制。
作用:将整数转换为字符串。
第二个参数只能是char*,不能是string;
char*转int
头文件: #include<stdlib.h>/#include
原型:int atoi(const char *nptr);
作用:把字符串转换成整型数。如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。atoi()不会做范围检查,如果超出范围的话,超出上界,则输出上界,超出下界,则输出下界;stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error!