VC中的字符串操作

None.gif // 本文内容: 1.字符串的连接; 2.字符串数组的赋值; 3.LPWSTR,BSTR中字符串(含中文)的显示;4.数据转换;
None.gif
#include  < stdlib.h >  
None.gif#include 
< stdio.h >  
None.gif#include 
< conio.h >  
None.gif#include 
" iostream.h "
None.gif#include 
" comutil.h "
None.gif#include 
< comdef.h >
None.gif#pragma comment( lib, 
" comsupp.lib "  )
None.gif
#define    LEN   100 
None.gif
// 字符串的连接
None.gif
BOOL getValue()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
char buffer2[100];
InBlock.gif    _bstr_t s,s2;   
InBlock.gif    s 
= L"S7:[S7 connection_1]DB90,X" ; 
InBlock.gif    
float f=0.0f;
InBlock.gif    
char  *p,*p2;
InBlock.gif    
//p=(char *)malloc(100);
InBlock.gif
    p=new char[100];
InBlock.gif    p2
="1234";
InBlock.gif    strcpy(p,
"S7:[S7 connection_1]DB90,X");
InBlock.gif    
//p="S7:[S7 connection_1]DB90,X" ;
InBlock.gif
    BOOL Flag=TRUE;
InBlock.gif    
for(int j1=0;j1<68;j1++)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
InBlock.gif        sprintf( buffer2, 
"%0.1f",f);
InBlock.gif        
//cout<<"buffer2="<<buffer2<<endl;
InBlock.gif
        LPWSTR lps;
InBlock.gif        
if(Flag)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif        s2
=s+buffer2;
InBlock.gif        
//cout<<endl<<s+buffer2<<endl;
InBlock.gif        
//cout<<endl<<s2<<endl;
InBlock.gif
        lps=::SysAllocString(s2);
InBlock.gif        
//cout<<"  lps="<<lps<<endl;
ExpandedSubBlockEnd.gif
        }

InBlock.gif        
else
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif        p2
=buffer2;
InBlock.gif        strcpy(p,
"S7:[S7 connection_1]DB90,X");
InBlock.gif
InBlock.gif    
//    char *p3="123";
InBlock.gif    
//        char *p23="123";
InBlock.gif    
//        int *i=NULL;
InBlock.gif    
//        int j=100;    
InBlock.gif    
//        i=&j;
InBlock.gif    
//        cout<<"i="<<i<<endl;
InBlock.gif    
//        cout<<"p3="<<p3<<endl;
InBlock.gif    
//        if(p3==p23)
InBlock.gif    
//    //    if("aa"=="aa")
InBlock.gif    
//        {
InBlock.gif    
//            cout<<"true";
InBlock.gif    
//        }
InBlock.gif    
//        else
InBlock.gif    
//        {
InBlock.gif    
//            cout<<"false";
InBlock.gif    
//        }
InBlock.gif
    
InBlock.gif        strcat(p,p2);
InBlock.gif        lps
=_com_util::ConvertStringToBSTR(p) ;
ExpandedSubBlockEnd.gif        }

InBlock.gif        
//cout<<"编号: "<<j1<<" 地址连接符: ";
InBlock.gif
        wprintf(L"%3d. %s\n", j1,lps);
InBlock.gif        f
+=0.1f;
ExpandedSubBlockEnd.gif    }

InBlock.gif    
return true;
ExpandedBlockEnd.gif}

None.gif
None.gif
// 应用字符串连接
None.gif
int  printstr()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
InBlock.gif  
InBlock.gif    
char str[]="ABCDE";
InBlock.gif    
char *string="ABCDE";
InBlock.gif 
InBlock.gif    
string =(char *)malloc(LEN);
InBlock.gif    strcpy(
string,"123456");
InBlock.gif    cout 
<< endl;
InBlock.gif    cout 
<<"字符串输出str[]="<<str<<endl;
InBlock.gif    cout 
<<"字符串输出*string="<<string<<endl;
InBlock.gif    
char *AppendStr;      
InBlock.gif    AppendStr
="abc";
InBlock.gif    
InBlock.gif        
for(int i  =   0;  i<   5; i++)   
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{   
InBlock.gif            AppendStr
=str;//"456";
InBlock.gif
            
InBlock.gif        
InBlock.gif            strcat(
string ,AppendStr);
InBlock.gif
InBlock.gif            
//strcat(string,   "a");   
ExpandedSubBlockEnd.gif
        }
   
InBlock.gif        printf(
"%s\n",   string);   
InBlock.gif        
InBlock.gif        free(
string);   
InBlock.gif         
InBlock.gif        getchar();   
InBlock.gif
InBlock.gif
InBlock.gif    
InBlock.gif    
return 1;
InBlock.gif    
ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif
None.gif
int  main( void
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
InBlock.gif
//printstr();
InBlock.gif
//system("PAUSE");
InBlock.gif

InBlock.gif
InBlock.gif
if(getValue())
InBlock.gifcout
<<"赋值成功"<<endl;
InBlock.gifsystem(
"PAUSE");
InBlock.gif
InBlock.gif    
//通过sprintf函数进行数据类型转换
InBlock.gif
    char  buffer2[200];
InBlock.gif    
char  c = '1';
InBlock.gif    
int   i = 35;
InBlock.gif    
long  j = 1000;
InBlock.gif    
float f = 1.7320534f;
InBlock.gif    sprintf( buffer2, 
"%c",c);
InBlock.gif    sprintf( buffer2, 
"%d",i);
InBlock.gif    sprintf( buffer2, 
"%d",j);
InBlock.gif    
//字符串的相加  
InBlock.gif
    _bstr_t s,s2;   
InBlock.gif    s 
= L"S7:[S7 connection_1]DB90,X" ; 
InBlock.gif    f
=0.0f;
InBlock.gif    
InBlock.gif    
for(int j1=0;j1<100;j1++)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        f
+=0.1f;
InBlock.gif        sprintf( buffer2, 
"%0.1f",f);
InBlock.gif        cout
<<"buffer2="<<buffer2<<endl;
InBlock.gif        s2
=s+buffer2;
InBlock.gif        
//cout<<endl<<s+buffer2<<endl;
InBlock.gif
        cout<<endl<<s2<<endl;
InBlock.gif        BSTR bs
=::SysAllocString(s2);
InBlock.gif        LPWSTR lps
=::SysAllocString(s2);
InBlock.gif        cout
<<"bs="<<bs<<"  lps="<<lps<<endl;
InBlock.gif        wprintf(L
"%s\n", bs); //显示赋值结果
InBlock.gif
        wprintf(L"%s\n", lps);
ExpandedSubBlockEnd.gif    }

InBlock.gif    
InBlock.gif    wchar_t 
*wsir;//#include<comdef.h>
InBlock.gif
    _bstr_t str=L"How are you,北京!";
InBlock.gif    wsir
=str;
InBlock.gif    wprintf(L
"%s\n", wsir);
InBlock.gif
InBlock.gif    
//中文字符的显示
InBlock.gif    
//说明:Converts a sequence of multibyte characters to a corresponding sequence of wide characters.
InBlock.gif    
//原型:size_t mbstowcs(     wchar_t* wcstr, const char* mbstr, size_t count );
InBlock.gif    
//参数:Parameters
InBlock.gif    
//      wcstr 
InBlock.gif    
//        The address of a sequence of wide characters. 
InBlock.gif    
//        mbstr 
InBlock.gif    
//        The address of a sequence of multibyte characters. 
InBlock.gif    
//        count 
InBlock.gif    
//        The number of multibyte characters to convert.
InBlock.gif
         
InBlock.gif        
InBlock.gif    
char* a = "你好,北京";
InBlock.gif    wchar_t 
*= new wchar_t[3];
InBlock.gif    mbstowcs(b, a, 
sizeof(a)+1);  
InBlock.gif    puts(a);
InBlock.gif    wprintf(L
"%s\n", b);
InBlock.gif    system(
"PAUSE"); //暂停程序的执行
InBlock.gif
    LPWSTR lps=L"success   OK";     
InBlock.gif    cout
<<"lps="<<lps<<endl;    
InBlock.gif    cout
<<"*string2"<<endl;    
InBlock.gif    
char *string2[10];
InBlock.gif    
int ii=0;
InBlock.gif
InBlock.gif    
//字符串数组赋值
InBlock.gif
    cout<<endl;
InBlock.gif    
for( ii=0;ii<10;ii++)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif
InBlock.gif        
int i=ii;
InBlock.gif        string2[i]
=new char;
InBlock.gif        itoa(i,string2[i],
10);
ExpandedSubBlockEnd.gif    }

InBlock.gif    cout
<<endl;
InBlock.gif    
for(ii=0;ii<10;ii++)
InBlock.gif        cout
<<string2[ii]<<endl; 
InBlock.gif
InBlock.gif    
//把双精度数转换成一个字符串。
InBlock.gif    
//char *ecvt(double value,int count,int *dec,int *sign);
InBlock.gif    
//函数 需要的头文件 兼容性
InBlock.gif    
//ecvt <stdlib.h>   Win 95,Win NT
InBlock.gif
        
InBlock.gif   
char *string
InBlock.gif   
double value; 
InBlock.gif   
int dec=2, sign=0
InBlock.gif   
int ndig = 1
InBlock.gif   
//clrscr(); 
InBlock.gif
   value = -9.876
InBlock.gif   
string = ecvt(value, ndig, &dec, &sign); 
InBlock.gif   printf(
"string = %s    dec = %d  sign = %d\n"string, dec, sign); 
InBlock.gif   value 
= -123.45
InBlock.gif   ndig
= 15
InBlock.gif   
string = ecvt(value,ndig,&dec,&sign); 
InBlock.gif   printf(
"string = %s dec = %d sign = %d\n"
InBlock.gif          
string, dec, sign); 
InBlock.gif   
int decimal, sign2=0
InBlock.gif   
char *buffer; 
InBlock.gif
InBlock.gif   
//fcvt是将浮点数转换为字符串,它不属于标准的C运行时库,仅仅是VC提供的,
InBlock.gif   
//因此把其命名为_fcvt .
InBlock.gif
       
InBlock.gif   
float source = 0.123456f
InBlock.gif   buffer 
= _fcvt( source, 2&decimal&sign2 );
InBlock.gif   
//printf("%s",buffer);
InBlock.gif
   
InBlock.gif   cout
<<endl<<endl;
InBlock.gif   cout
<<buffer<<endl;
InBlock.gif   cout
<<source<<"  "<<decimal<<"  "<<sign2<<endl;
InBlock.gif   
InBlock.gif
//运行结果:source: 3.1415926535 buffer: \\\'31415927\\\' decimal: 1 sign: 0
InBlock.gif
//decimal表示小数点的位置,sign表示符号:0为正数,1为负数 
InBlock.gif

InBlock.gif     
InBlock.gif   
return 0
ExpandedBlockEnd.gif}
 
None.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值