zoukankan
html css js c++ java
VC中的字符串操作
//
本文内容: 1.字符串的连接; 2.字符串数组的赋值; 3.LPWSTR,BSTR中字符串(含中文)的显示;4.数据转换;
#include
<
stdlib.h
>
#include
<
stdio.h
>
#include
<
conio.h
>
#include
"
iostream.h
"
#include
"
comutil.h
"
#include
<
comdef.h
>
#pragma comment( lib,
"
comsupp.lib
"
)
#define
LEN 100
//
字符串的连接
BOOL getValue()
{
char
buffer2[
100
];
_bstr_t s,s2;
s
=
L
"
S7:[S7 connection_1]DB90,X
"
;
float
f
=
0.0f
;
char
*
p,
*
p2;
//
p=(char *)malloc(100);
p
=
new
char
[
100
];
p2
=
"
1234
"
;
strcpy(p,
"
S7:[S7 connection_1]DB90,X
"
);
//
p="S7:[S7 connection_1]DB90,X" ;
BOOL Flag
=
TRUE;
for
(
int
j1
=
0
;j1
<
68
;j1
++
)
{
sprintf( buffer2,
"
%0.1f
"
,f);
//
cout<<"buffer2="<<buffer2<<endl;
LPWSTR lps;
if
(Flag)
{
s2
=
s
+
buffer2;
//
cout<<endl<<s+buffer2<<endl;
//
cout<<endl<<s2<<endl;
lps
=
::SysAllocString(s2);
//
cout<<" lps="<<lps<<endl;
}
else
{
p2
=
buffer2;
strcpy(p,
"
S7:[S7 connection_1]DB90,X
"
);
//
char *p3="123";
//
char *p23="123";
//
int *i=NULL;
//
int j=100;
//
i=&j;
//
cout<<"i="<<i<<endl;
//
cout<<"p3="<<p3<<endl;
//
if(p3==p23)
//
//
if("aa"=="aa")
//
{
//
cout<<"true";
//
}
//
else
//
{
//
cout<<"false";
//
}
strcat(p,p2);
lps
=
_com_util::ConvertStringToBSTR(p) ;
}
//
cout<<"编号: "<<j1<<" 地址连接符: ";
wprintf(L
"
%3d. %s\n
"
, j1,lps);
f
+=
0.1f
;
}
return
true
;
}
//
应用字符串连接
int
printstr()
{
char
str[]
=
"
ABCDE
"
;
char
*
string
=
"
ABCDE
"
;
string
=
(
char
*
)malloc(LEN);
strcpy(
string
,
"
123456
"
);
cout
<<
endl;
cout
<<
"
字符串输出str[]=
"
<<
str
<<
endl;
cout
<<
"
字符串输出*string=
"
<<
string
<<
endl;
char
*
AppendStr;
AppendStr
=
"
abc
"
;
for
(
int
i
=
0
; i
<
5
; i
++
)
{
AppendStr
=
str;
//
"456";
strcat(
string
,AppendStr);
//
strcat(string, "a");
}
printf(
"
%s\n
"
,
string
);
free(
string
);
getchar();
return
1
;
}
int
main(
void
)
{
//
printstr();
//
system("PAUSE");
if
(getValue())
cout
<<
"
赋值成功
"
<<
endl;
system(
"
PAUSE
"
);
//
通过sprintf函数进行数据类型转换
char
buffer2[
200
];
char
c
=
'
1
'
;
int
i
=
35
;
long
j
=
1000
;
float
f
=
1.7320534f
;
sprintf( buffer2,
"
%c
"
,c);
sprintf( buffer2,
"
%d
"
,i);
sprintf( buffer2,
"
%d
"
,j);
//
字符串的相加
_bstr_t s,s2;
s
=
L
"
S7:[S7 connection_1]DB90,X
"
;
f
=
0.0f
;
for
(
int
j1
=
0
;j1
<
100
;j1
++
)
{
f
+=
0.1f
;
sprintf( buffer2,
"
%0.1f
"
,f);
cout
<<
"
buffer2=
"
<<
buffer2
<<
endl;
s2
=
s
+
buffer2;
//
cout<<endl<<s+buffer2<<endl;
cout
<<
endl
<<
s2
<<
endl;
BSTR bs
=
::SysAllocString(s2);
LPWSTR lps
=
::SysAllocString(s2);
cout
<<
"
bs=
"
<<
bs
<<
"
lps=
"
<<
lps
<<
endl;
wprintf(L
"
%s\n
"
, bs);
//
显示赋值结果
wprintf(L
"
%s\n
"
, lps);
}
wchar_t
*
wsir;
//
#include<comdef.h>
_bstr_t str
=
L
"
How are you,北京!
"
;
wsir
=
str;
wprintf(L
"
%s\n
"
, wsir);
//
中文字符的显示
//
说明:Converts a sequence of multibyte characters to a corresponding sequence of wide characters.
//
原型:size_t mbstowcs( wchar_t* wcstr, const char* mbstr, size_t count );
//
参数:Parameters
//
wcstr
//
The address of a sequence of wide characters.
//
mbstr
//
The address of a sequence of multibyte characters.
//
count
//
The number of multibyte characters to convert.
char
*
a
=
"
你好,北京
"
;
wchar_t
*
b
=
new
wchar_t[
3
];
mbstowcs(b, a,
sizeof
(a)
+
1
);
puts(a);
wprintf(L
"
%s\n
"
, b);
system(
"
PAUSE
"
);
//
暂停程序的执行
LPWSTR lps
=
L
"
success OK
"
;
cout
<<
"
lps=
"
<<
lps
<<
endl;
cout
<<
"
*string2
"
<<
endl;
char
*
string2[
10
];
int
ii
=
0
;
//
字符串数组赋值
cout
<<
endl;
for
( ii
=
0
;ii
<
10
;ii
++
)
{
int
i
=
ii;
string2[i]
=
new
char
;
itoa(i,string2[i],
10
);
}
cout
<<
endl;
for
(ii
=
0
;ii
<
10
;ii
++
)
cout
<<
string2[ii]
<<
endl;
//
把双精度数转换成一个字符串。
//
char *ecvt(double value,int count,int *dec,int *sign);
//
函数 需要的头文件 兼容性
//
ecvt <stdlib.h> Win 95,Win NT
char
*
string
;
double
value;
int
dec
=
2
, sign
=
0
;
int
ndig
=
1
;
//
clrscr();
value
=
-
9.876
;
string
=
ecvt(value, ndig,
&
dec,
&
sign);
printf(
"
string = %s dec = %d sign = %d\n
"
,
string
, dec, sign);
value
=
-
123.45
;
ndig
=
15
;
string
=
ecvt(value,ndig,
&
dec,
&
sign);
printf(
"
string = %s dec = %d sign = %d\n
"
,
string
, dec, sign);
int
decimal
, sign2
=
0
;
char
*
buffer;
//
fcvt是将浮点数转换为字符串,它不属于标准的C运行时库,仅仅是VC提供的,
//
因此把其命名为_fcvt .
float
source
=
0.123456f
;
buffer
=
_fcvt( source,
2
,
&
decimal
,
&
sign2 );
//
printf("%s",buffer);
cout
<<
endl
<<
endl;
cout
<<
buffer
<<
endl;
cout
<<
source
<<
"
"
<<
decimal
<<
"
"
<<
sign2
<<
endl;
//
运行结果:source: 3.1415926535 buffer: \\\'31415927\\\' decimal: 1 sign: 0
//
decimal表示小数点的位置,sign表示符号:0为正数,1为负数
return
0
;
}
查看全文
相关阅读:
第二十七节(多线程、线程的创建和启动、生命周期、调度、控制、同步)
第二十六节(对象流,File类)
第二十五节(转换流,打印流)
第二十四节(Java文件流,缓冲流)
第二十三节(String,StringBuffer,基础类型对应的 8 个包装类,日期相关类、 Random 数字 ,Enum枚举)下
【转】perl如何避免脚本在windows中闪一下就关闭
计算机基础(二)
计算机基础(一)
04 数据结构
03 逻辑与结构
原文地址:https://www.cnblogs.com/furenjun/p/vcstring.html
最新文章
CSS3背景 background-origin
css3 嵌入字体@font-face
css3颜色控制,alpha和渐变
CSS3边框 圆角效果 border-radius
CSS3兼容各浏览器前缀
XDU1159 分步更新floyd
HDU5673 卡特兰数的应用
HDU4588 找规律
hdu3911 线段树的区间更新
poj3468 线段树
热门文章
HDU4576 概率dp
HDU 4961 基础维护题
HDU5455 沈阳网络赛 Fang Fang
HDU5461 沈阳网络赛题
RMQ 总结
第四节(循环,数组,异常,九九乘法表,计算器)
第三节(JavaScript 对象、日期,函数)
第二节(JavaScript变量(存储容器)作用域)
第一节(JS简介,实现输入输出语句、注释)
第二十八(线程的同步、守护线程、Timer 定时器)
Copyright © 2011-2022 走看看