解题思路:

写这篇题解主要是想掌握一下:

一、整型数字直接转化为字符串    二、字符串直接转换字符串数组。


一:利用stringstream:

数字转换为字符串:

#include<iostream>

using namespace std;
int main()
{
 int n;
 cin>>n;

 string s;
 stringstream ss;  //定义流ss
 ss<<n;                //将数字往流里面倒
 ss>>s;                //将流ss转换为字符串 


return 0;
}


同理可以反过来,将字符串转换为数字:

#include<iostream>

using namespace std;
int main()
{
 int n;
 string s;
 cin>>s;
 stringstream ss;  //定义流ss
 ss<<s;            //将字符串往流里面倒
 ss>>n;            //将流ss转换为数字

return 0;
}

注意事项:记得加头文件#include<sstream>


二、字符串直接转换字符串数组

两个点:

1、string中c_str()的用法

c_str()函数返回一个指向字符串的指针常量,内容是字符串对象的当前内容加上一个额外的终止字符(‘\ 0’)。

这是为了与c语言兼容,在C语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成C中的字符串样式。

注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针。


错误用法:

const char* c;
string s="test";
c = s.c_str();


原因:因为c_str()返回的是一个临时指针,s对象被析构,其内容被处理,所以c最后指向是垃圾内存,内容就不确定了。


修正:

char c[20] = {0};
string s="test";
strcpy(c,s.c_str());


2、strncpy()

声明:

char *strncpy(char *dest, const char *src, size_t n)

把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。

所以说:strncpy(目标 , 源 , 长度);

例:


string s="0123456789";

char op[15];

strncpy(op,s.c_str(),s.length()+1);//s.c_str() 字符强制转化为字符串函数

                                                     //长度必须加1,\0还占一个位置

注意:记得加头文件#include<string>


参考代码:

#include<iostream>
#include<sstream>
#include<string.h>
using namespace std;
int main()
{
 int n,i;
 cin>>n;
 string s;
 stringstream ss;
 ss<<n;
 ss>>s;  //数字转换为字符串
    cout<<s.length()<<endl;
    char a[6];
 strncpy(a,s.c_str(),s.length()+1);  //字符串转换为字符串数组

//接下来按要求输出即可
     for(i=0;i<s.length()-1;i++)
        cout<<a[i]<<" ";
        cout<<a[i]<<endl;
       
    for(i=s.length()-1;i>=0;i--)
     cout<<a[i];
    
 return 0;
}

 

 

 

ps:建议还是最先掌握用取余的方法来进行分离数字来解这道题,这是基础。

第一次写题解,不足之处请多指教。

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论