wordpress网页加速,中山seo技术,个人电子邮件注册网站申请,石家庄又开始封小区了前言#xff1a;
在C/C程序中#xff0c;会需要把数字与字符串做出互相转换的操作#xff0c;用于实现程序想要的效果。下面将介绍多种方法实现数字与字符串互相转换。 字符串转为数字
一、利用ASCII
我们知道每个字符都有一个ASCII码#xff0c;利用这一点可以将字符-0…前言
在C/C程序中会需要把数字与字符串做出互相转换的操作用于实现程序想要的效果。下面将介绍多种方法实现数字与字符串互相转换。 字符串转为数字
一、利用ASCII
我们知道每个字符都有一个ASCII码利用这一点可以将字符-0转为数字。在字母大小写转换时也可以利用这个性质。 #includeiostream
#includecstring
using namespace std;
char ch[]{1,2,3,4,5};
int main(){for(int i0;istrlen(ch);i){coutch[i]-0 ;}return 0;
} 输出int类型的12345 二、stoi()
stoi函数是C标准库中的一个函数用于将字符串转换为整数针对于string类型的。stoi函数是C11引入的因此只有在C11及以上的版本中才能使用该函数。如果你的编译器版本较老不支持C11那么就无法使用stoi函数。学校机房的dev-C一般是C98标准的需要自己手动改成C11。
int numstoi(const string str, size_t* idx 0, int base 10);其中str是需要转换的字符串idx是一个指向size_t类型的指针用于保存转换结束的位置base是进制默认为10进制。一般只给传第一个参数即可也可以利用此函数实现进制转换。
类似的还有stol()、stof()、stod(),分别将字符串类型转换成long long、float、double类型。
#includeiostream
#includecstringusing namespace std;
string s12345;
int main(){int astoi(s);long long bstol(s);double cstod(s);float dstof(s);coutint:aendl;coutlong long:bendl;coutdouble:cendl;coutfloat:dendl;return 0;
}三、atoi()
atoi()函数是C语言中的一个函数主要用于将字符串转换为整数。针对于字符数组,类似的还有atol()、atof()、atod()。
int numatoi(const char *str);其中str是一个以null结尾的字符串表示要转换的整数。
该函数将从字符串的开头开始解析直到遇到第一个非数字字符为止。如果开头是一个正号或负号它也会解析为整数的一部分。如果字符串中的第一个非空格字符不是有效的数字字符或正负号则返回0。
#includeiostream
#includecstringusing namespace std;
char s1[]12345;
char s2[]qwe;
int main(){int aatoi(s1);long long batol(s2);coutint:aendl;coutlong long:bendl;return 0;
}四、sscanf()
sscanf函数是一个用来将字符串按照指定格式解析的函数。它接受一个输入字符串和一个格式字符串作为参数并根据格式字符串的指示将字符串中的数据解析为对应的变量中。主要是针对于字符数组。
sscanf(str,%d,num);//str字符数组,%dint类型,num转换完成数字
代码应用如下
#includeiostream
#includecstringusing namespace std;
char s1[]12345;
char s2[]qwe;
int main(){int a;long long b;sscanf(s1,%d,a);sscanf(s2,%lld,b);//转字母会成乱码coutint:aendl;coutlong long:bendl;return 0;
}五、stringstream
stringstream是C中的一个类可以用来对字符串进行输入输出操作。它是基于字符串的流可以用来将字符串转换为其他类型的数据以及将其他类型的数据转换为字符串。stringstream类的头文件是sstream我们需要包含这个头文件才能使用stringstream类。
#includeiostream
#includesstream
#includecstring
#includetypeinfousing namespace std;
int main(){stringstream ss;string s12345;int num;sss;//将字符串读入字符串流 ssnum;//从字符串流中读取数据转换为整数couttypeid(num).name() numendl;return 0;
} 数字转为字符串
一、利用ASCII
字符转数字可以-0数字转字符那么就可以0还是利用了ASCII码值的特性。
#includeiostream
#includecstring
using namespace std;
int nums[]{1,2,3,4,5};
int main(){for(int i0;isizeof(nums)/sizeof(int);i){coutnums[i]0 ;}return 0;
}
注意转换结果为49 50 51 52 53 对应ASCII码值因为原理就是用ASCII码转换的。 一、to_string()
to_string函数是C标准库提供的一个函数用于将不同类型的数据转换为字符串。可以将int、float、double、long long等类型转换为string类型。需要包含头文件#includecstring
#includeiostream
#includecstring
using namespace std;
int a24;
long long b12345678;
double c3.1415;
string s;
int main(){sto_string(a);coutsendl;sto_string(b);coutsendl;sto_string(c);coutsendl;return 0;
} 二、itoa()
itoa函数用于将整数转换为字符串。类似的还有ltoa、ftoa、dtoa分别将long long、float、double转换为字符串类型。针对于字符数组。
itoa(num,str,10);
第一个参数是待转换的数字第二个参数是转换完成的字符数组第三个是转换的进制数默认10进制。
#includeiostream
#includecstring
using namespace std;
int n12345;
char str[10];
int main(){itoa(n,str,10); coutstrendl;return 0;
} 结果为12345 三、sprintf()
sprintf()函数是c语言库中的函数可以将数字转换为字符串类型一般转换为字符数组。
sprintf(str,%d,num);str是转换完成的字符数组%d是类型num是待转换的数字。
#includeiostream
#includecstring
using namespace std;
int n12345;
char str[10];
int main(){sprintf(str,%d,n); coutstrendl;return 0;
}
结果为12345 四、stringstream
与字符串转数字的一样可以互相转换同时还是要包含头文件sstream具体使用如下
#includeiostream
#includesstream
#includecstring
#includetypeinfousing namespace std;
int main(){stringstream ss;string s12345;int num54321;ssnum;//将int类型的数据写入字符串流中sss.str();//将字符串流中的数据转换为string类型couttypeid(s).name() numendl;return 0;
} 本篇到此为止感谢大家支持。