最简单的方式,假设你的多字符字符串是str,那么转换为UNICODE:
CStringW strW(str);
strW就是UNICODE了,至于你要输出数字,写个循环就是了,每个字符怎么打印成数字总不用我说了吧?
#include <stdioh>#include <stringh>
int getResult(int n1, int n2, char oper)//多种运算 *** 作
{
switch(oper)
{
case '+':return (n1+n2);
case '-':return (n1-n2);
case '':return (n1n2);
case '/':
{
if(n2 == 0)
{
return 0;//除数为0异常
}
return (n1/n2);
}
default:
return 0;
}
return 0;//输入不正确则返回0
}
void main()
{
int result;
char str[50];
scanf("%s",str);//获得表达式1231+2,数字长度可变,但是中间不能有空格
int i;
char ch;
int iLen = strlen(str);//求字符串长度
int n1 = 0, n2 = 0;
for(i = 0; str[i] >= '0' && str[i] <= '9'; ++i)
{
n1 = 10;
n1 += (str[i] - '0');//逐位获取数字
}
ch = str[i++];
for(; i < iLen; ++i)
{
n2 = 10;
n2 += (str[i] - '0');//逐位获取数字
}
result = getResult(n1,n2,ch);
printf("%s = %d\n",str,result);
}多种 *** 作都实现了
用sprintf()函数即可:#include <stdioh>
int main(void)
{
char str[20];/用于保存转换后的字符串/
sprintf(str,"%g",12373);/以%f格式将实数a输出到字符数组str中/
printf("%s",str);/输出字符串str/
return 0;
}
方法应该有多种。说一下个人想法,供楼主参考。
大体思路就是,如果数字是存在一个数组当中,比如int a[4]={1,2,3,4},再新建个数组char b[4],把数组a逐个元素赋给b,然后就可以了。
这样的话,不仅能打印出字符串,数组b里面实际放的也是字符。
#include <stdioh>
int main()
{
int a[4]={1,2,3,4};
char b[4];
for(int i=0;i<4;i++)
b[i]=a[i];
for(int i=0;i<4;i++)
printf("%c",b[i]);
return 0;
}
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。用itoa()函数将整数转换为字符串。
itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数。在上例中,转换基数为10。
#include <stdioh>
int main()
{
int a[4]={1,2,3,4};
char b[4];
for(int i=0;i<4;i++)
b[i]=a[i];
for(int i=0;i<4;i++)
printf("%c",b[i]);
return 0;
}
字符串在存储上类似字符数组
它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为 *** 作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。
两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
百度百科-字符串
#include "stdioh"
#include "mathh"
main()
{
char change(int x,int n);
int x,i,j;
char s[8],y;
printf("请输入整数:");
scanf("%d",&x);
for(i=0;i<20;i++)
{
y=change(x,i);
if(y=='\0')
{
s[i]='\0';
break;
}
s[i]=y;
}
for(i=7;i>=0;i--)//由于字符存储到字符数组时顺序与原来相反,故在此将字符顺序倒输
if(s[i]=='\0')
for(j=i-1;j>=0;j--)
printf("%c",s[j]);
printf("\n");
}
char change(int x,int n)
{
int i;
char g;
for(i=0;i<=n;i++)
{
switch(x%10)
{
case 0 :g='0';break;
case 1 :g='1';break;
case 2 :g='2';break;
case 3 :g='3';break;
case 4 :g='4';break;
case 5 :g='5';break;
case 6 :g='6';break;
case 7 :g='7';break;
case 8 :g='8';break;
case 9 :g='9';break;
}
if(x==0)
{
g='\0';
break;
}
x=x/10;
}
return(g);
}
在C/C++语言中没有专门的字符串变量
通常用字符数组来存放字符串。字符串是以“\0”作为结束符。C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数。
字符串是面试的重点考查部分的相关知识,通过考查字符串的相关知识可以考察程序员的编程规范以及编程习惯。并且其中包括了许多知识点,例如内存越界、指针与数组 *** 作等。许多公司在面试时会要求应聘者写一段复制字符串或字符串子串 *** 作的程序。本章列举了一些与字符串相关的面试题,有些题目要求较高的编程技巧。
百度百科-字符串
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)