C语言字符串转成INT型数组

C语言字符串转成INT型数组,第1张

#include<stdioh>

int main()

{

int i,a[200];

char s[200];

gets(s);

for(i=0;s[i];i++)

a[i]=s[i];

a[i]=0;

for(i=0;a[i];i++)

printf("%d ",a[i]);

printf("\n");

getch();

return 0;

}

如果是数字串,则有以下的转换:

#include<stdioh>

int main()

{

int i,a[200];

char s[200];

scanf("%s",&s);

for(i=0;s[i];i++)

a[i]=s[i]-'0';

a[i]=0;

for(i=0;a[i];i++)

printf("%d ",a[i]);

printf("\n");

getch();

return 0;

}

直接用简单的C++

#include <iostream>
#include <string>
#include <vector>
using namespace std;
//把字符s按照字符串c进行切分得到vector_v 
vector<string> split(const string& s, const string& c){
vector<string> v;
int pos1=0,pos2;
while((pos2=sfind(c,pos1))!=-1){
vpush_back(ssubstr(pos1, pos2-pos1));
     pos1 = pos2 + csize();
   }
if(pos1 != slength())
     vpush_back(ssubstr(pos1));
return v;
}
int main()
{
string input="张三$|男$|济南$|大专学历$|";
vector<string>  myArray=split(input,"$|");
for(int i=0;i<myArraysize();i++){
cout<<myArray[i]<<endl;
}
}
/
张三

济南
大专学历
/

C语言程序:

#include <stdioh>
#define MAX 100
void main()
{
char str = "Hello,world!";
char arr[MAX];
int i;
for(i=0; (str+i) != '\0'; i++)
(arr + i) = (str + i);
(arr + i) = '\0';
puts(arr);
}


#include <stdioh>
 #include <stdlibh>  
int main () {     
 int i;     
 char buffer[256];     
 printf ("Enter a number: ");     
 fgets (buffer, 256, stdin);     
 i = atoi (buffer);    
    printf ("The value entered is %d", i);      
 system("pause");     
 return 0; 
}

其实你的需求很简单只要是用atoi函数就可以轻松的转换string到数组了,我用以上的一小段代码就可以解释明白你的疑惑。没看明白在问我吧!

执行结果:
Enter a number: 233cyuyan
The value entered is 233

函数说明如下:

头文件:#include <stdlibh>
atoi() 函数用来将字符串转换成整数(int),其原型为:
int atoi (const char  str);
函数说明atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。
返回值返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0

c语言中没有byte这种类型,这是计算机中存储信息的单位。
char 是字符型
byte 是字节型(0 - 255)
在参与算术运算是char类型会自动转为整型;如字符A会转为对应ASCII码65
char是用来表示一个字符,而不是一个字,因为一个字要占用两个字节。而存储一个ANSI字符只需一个字节。注意,强调是ANSI字符,而不是Unicode字符。因为Unicode要占用两个字节。
byte类型是最自由的一种。它就占用一个字节,但没有定义这个字节拿来干什么。char定义为一个Unsigned Byte类型。也就是无符号的一个字节。它将一个字节的8位全占用了。可以表示的数据范围是0到255之间。
如果你确定处理的字符串是标准的ANSI字符串,那不必转换也可以直接一个字节一个字节地处理。如果要处理的字符串不定或是统一的Unicode字符串则要进行转换后进行处理。

c语言中没有字符串类型的变量,用字符指针表示字符串,char p = “hello”
可以直接使用数组下表访问字符串中的字符,例如 p[0]='h',p[1]='e',但最后一个字符p[5]='\0';


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13400967.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存