hur.cn - 华软网

 热门搜索

char转int

  作者:未知    来源:网络    更新时间:2011/4/14
小弟讨教:现有char a[]={a1,0,0,0,a2,0,0}怎么转换存储到int b[]为去逗号后为1000100。
也就是把a[]中的非0全数换成1,再把逗号去掉,依次存储到另外int型数组中
---华软 网友回答---
C++">#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>

void main()
{
  char a[]={'a','0','0','0','b','0','0'};
  int length=sizeof(a)/sizeof(char);
  int *shift=new int[length];
  for (int i=0;i<length;i++)
  {
  (a[i]=='0')?(shift[i]=0):(shift[i]=1);
  }
  a[length]='\0';
  cout<<"转换前:"<<endl<<a<<endl;
  cout<<"转换后"<<endl;
  for (i=0;i<length;i++)
  {
  cout<<shift[i];
  }
 

}

int delta(int n)
{
  int i,j,no,num,max;
  int *mtrx;
  
  max=n*n;
   
  mtrx=new int[max+max];
  for(i=0;i<n;i++)
  {
  for(j=0;j<=i;j++)
  {
  if(i<1)
  {
  mtrx[0]=1;
  }
  else
  {
  no=i*n+j;
  if(j==0||j==i)
  {
  num=1;
  }
  else
  {
  num=mtrx[no-n]+mtrx[no-n-1];
  }
  mtrx[no]=num;
  }
  }
  }
  
  
  cout<<"杨辉三角以下 :"<<endl;
  for(i=0;i<n;i++)
  {
  printf("\n");
  no=i*n;
  for(j=0;j<=i;j++)
  {
  printf("%5d",mtrx[no]);
  no++;
  }
  }
  
  delete mtrx;

  return 0;
}
//冒泡算法
int bubble(int *data,int n)
{
int i,j,k,pass,t,sorted;

pass=0;
printf("\n0 :");
for(k=0;k<n;k++)
{
printf(" %d",data[k]);
}

for(i=0;i<n-1;i++)
{
sorted=1;
for(j=i+1;j<n;j++)
{
if(data[i]>data[j])
{
/*交换.*/
t=data[i];
data[i]=data[j];
data[j]=t;
sorted=0;
}
}

pass++;


if(sorted==0)
{
printf("\n%d :",pass);

for(k=0;k<n;k++)
{
if(k==i)
{
printf(" [%d]",data[k]);
}
else
{
printf(" %d",data[k]);
}
}
}
}

printf("\n");

return 1;
 }

---华软网友回复---
atoi
---华软网友回复---
欠好意思,上面 main() 函数后面的两个函数不需要的。那两个是尝试其余算法的
---华软网友回复---
C++">
   int i,j;
   j = 0;
   for(i=0;i<7;i++){
      j=j<<1;
      if((BYTE)a[i]!=0x00){
         j=j^1;
      }
   }
   printf("%d",j);

---华软网友回复---
C++">int Conversion(char* a)
{
char seps[] = ",";
char* tmp = new char[strlen(a)+1];
memset(tmp, 0, sizeof(strlen(a)+1));
int nIndex = 0;
char* token = strtok(a, seps);
while(NULL != token)
{
if(0 != strcmp(token, "0"))
{
tmp[nIndex++] = '1';
}
else
{
tmp[nIndex++] = '0';
}
token = strtok(NULL, seps);
}
int b =  atoi(tmp);
delete[] tmp;
tmp = NULL;
return b;
}

// 调用
char a[]={"a1,0,0,0,a2,0,0"};
int b = Conversion(a);
CString str;
str.Format(_T("%d"), b);
AfxMessageBox(str);
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。