strtoint [英] strtoint

查看:66
本文介绍了strtoint的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个功能是否存在于c?任何等价物?将字符串转换为

整数?


如何将数组转换为字符串

示例

char arr ['''',''b'',''c''];

char * arr2;


我如何制作arr2 = arr?

does this function exist in c? on any equivalent? that convert string to
integer?

how do I convert a array to a "string"
example
char arr[''a'',''b'',''c''];
char *arr2;

how can I make arr2 = arr ?

推荐答案

Profetas于25/07/04写道:
Profetas wrote on 25/07/04 :
这个功能在c中存在吗?任何等价物?将字符串转换为
整数?

如何将数组转换为字符串
示例
char arr [''a'''''公元前''];


这不是C.


char arr [] = {'''',''b'',''c ''};


但它不是一个字符串。

char * arr2;

如何制作arr2 = arr?
does this function exist in c? on any equivalent? that convert string to
integer?

how do I convert a array to a "string"
example
char arr[''a'',''b'',''c''];
This is not C.

char arr[] = {''a'',''b'',''c''};

But it''s not a string.
char *arr2;

how can I make arr2 = arr ?




arr2只是一个指针。你被允许指向数组f

char,但它不会成为一个字符串。


请记住在C中,''=''是做作运算符,'==''

是等于运算符(使用数值)


如果你想用char数组的caracters构建一个字符串,

你可以这样做:


/ *足够分配空间* /

size_t const len = sizeof arr;

char * arr2 = malloc(len + 1); / *< stdlib.h> * /


if(arr2!= NULL)

{

/ * make the string * /

* arr2 = 0;

strncat(arr2,arr,len);


< ...>


/ *完成后* /

免费(arr2),arr2 = NULL;

}


-

Emmanuel

C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html


" C是一个尖锐的工具



arr2 is just a pointer. You are allowed to make it point to an array f
char, but it doesn''t make it a string.

Bare in mind that in C, ''='' is the affectation operator, and that ''==''
is the equal operator (works with numerical values)

If you want to build a string with the caracters of the array of char,
you can do this :

/* allocate room enough */
size_t const len = sizeof arr;
char *arr2 = malloc (len + 1); /* <stdlib.h> */

if (arr2 != NULL)
{
/* make the string */
*arr2 = 0;
strncat (arr2, arr, len);

<...>

/* when finished */
free (arr2), arr2 = NULL;
}

--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html

"C is a sharp tool"


Profetas写道:
Profetas wrote:
这个功能是否存在于c?任何等价物?将字符串转换为
整数?

如何将数组转换为字符串
示例
char arr [''a''''' b'',''c''];
char * arr2;

如何制作arr2 = arr?
does this function exist in c? on any equivalent? that convert string to
integer?

how do I convert a array to a "string"
example
char arr[''a'',''b'',''c''];
char *arr2;

how can I make arr2 = arr ?



我们这里有一个没有费心去查看最基本教科书的人的例子。


#include< stdio.h>

#include< stdlib.h>

#include< string.h>


int main(无效)

{

char arr [3] =" abc";

char * arr1,* arr2,* arr3,* arr4;

size_t i;


arr1 = arr;

printf(我设置了arr1 = arr。让我们检查:\ n;);

for(i = 0; i< sizeof arr; i ++)

printf(" arr [%lu] =%c,arr1 [%lu] =% c \ n",(unsigned long)我,

arr [i],(unsigned long)i,arr1 [i]);

putchar(''\\ \\ n'');


if(!(arr2 = mal loc(sizeof arr))){

fprintf(stderr,malloc for arr2失败了。 Quitting.\\\
;

退出(EXIT_FAILURE);

}

memcpy(arr2,arr,sizeof arr);

printf(我为arr2分配了空间,并将arr复制到了它。

让我们检查:\ n");

for(i = 0; i< sizeof arr; i ++)

printf(" arr [%lu] =%c,arr2 [%lu] =%c \ n",(unsigned long)我,

arr [i],(unsigned long)i,arr2 [i]);

putchar(''\ n'');

免费(arr2);


if(!(arr3 = malloc(1 + sizeof arr))){

fprintf(stderr,malloc for arr3 failed.Quitting.\ n);

退出(EXIT_FAILURE);

}

memcpy(arr3,arr,sizeof arr);

arr3 [sizeof arr] = 0;

printf("以上两者都没有string.\\\
"

"我为arr3分配了空间,并复制了arr

和终止0给它。\ n"" ;让我们检查:\ n ");

for(i = 0; i< sizeof arr; i ++)

printf(" arr [%lu] =%c,arr3 [% lu] =%c \ n",(unsigned long)i,

arr [i],(unsigned long)i,arr3 [i]);

printf (" arr3 = \"%s \" \ n",arr3);

putchar(''\ n'');


if(!(arr4 = malloc(1 + strlen(arr3)))){

fprintf(stderr,malloc for arr4 failed。 Quitting.\\\
;

退出(EXIT_FAILURE);

}

strcpy(arr4,arr3);

printf

(我为arr4分配了空间,并将字符串

" arr3复制到它。\ n""'让'检查:\ n");

printf(" arr3 = \"%s \",arr4 = \"%s \" \ n" ;,arr3,arr4);

putchar(''\ n'');

免费(arr3);

免费(arr4) );

返回0;

}

我设置了arr1 = arr。我们来检查:

arr [0] = a,arr1 [0] = a

arr [1] = b,arr1 [1] = b

arr [2] = c,arr1 [2] = c


我为arr2分配了空间,并将arr复制到它。

让我们检查:

arr [0] = a,arr2 [0] = a

arr [1] = b,arr2 [1] = b

arr [2] = c,arr2 [2] = c


在上述两种情况中我们都没有字符串。

我已经为arr3分配了空间,并复制了arr和终止0给它。

让我们检查:

arr [0] = a,arr3 [ 0] = a

arr [1] = b,arr3 [1] = b

arr [2] = c,arr3 [2] = c

arr3 =" abc"


我为arr4分配了空间,并将字符串arr3复制到它。

让我们检查一下:

arr3 =" abc",arr4 =" abc"


Here we have an example of someone who has not bothered to check even
the most elementary textbook.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
char arr[3] = "abc";
char *arr1, *arr2, *arr3, *arr4;
size_t i;

arr1 = arr;
printf("I have set arr1=arr. Let''s check:\n");
for (i = 0; i < sizeof arr; i++)
printf("arr[%lu] = %c, arr1[%lu] = %c\n", (unsigned long) i,
arr[i], (unsigned long) i, arr1[i]);
putchar(''\n'');

if (!(arr2 = malloc(sizeof arr))) {
fprintf(stderr, "malloc for arr2 failed. Quitting.\n");
exit(EXIT_FAILURE);
}
memcpy(arr2, arr, sizeof arr);
printf("I have allocated space for arr2, and copied arr to it.\n"
"Let''s check:\n");
for (i = 0; i < sizeof arr; i++)
printf("arr[%lu] = %c, arr2[%lu] = %c\n", (unsigned long) i,
arr[i], (unsigned long) i, arr2[i]);
putchar(''\n'');
free(arr2);

if (!(arr3 = malloc(1 + sizeof arr))) {
fprintf(stderr, "malloc for arr3 failed. Quitting.\n");
exit(EXIT_FAILURE);
}
memcpy(arr3, arr, sizeof arr);
arr3[sizeof arr] = 0;
printf("In neither of the above do we have a string.\n"
"I have allocated space for arr3, and copied arr "
"and a terminating 0 to it.\n" "Let''s check:\n");
for (i = 0; i < sizeof arr; i++)
printf("arr[%lu] = %c, arr3[%lu] = %c\n", (unsigned long) i,
arr[i], (unsigned long) i, arr3[i]);
printf("arr3=\"%s\"\n", arr3);
putchar(''\n'');

if (!(arr4 = malloc(1 + strlen(arr3)))) {
fprintf(stderr, "malloc for arr4 failed. Quitting.\n");
exit(EXIT_FAILURE);
}
strcpy(arr4, arr3);
printf
("I have allocated space for arr4, and copied the string "
"arr3 to it.\n" "Let''s check:\n");
printf("arr3=\"%s\", arr4 = \"%s\"\n", arr3, arr4);
putchar(''\n'');
free(arr3);
free(arr4);
return 0;
}
I have set arr1=arr. Let''s check:
arr[0] = a, arr1[0] = a
arr[1] = b, arr1[1] = b
arr[2] = c, arr1[2] = c

I have allocated space for arr2, and copied arr to it.
Let''s check:
arr[0] = a, arr2[0] = a
arr[1] = b, arr2[1] = b
arr[2] = c, arr2[2] = c

In neither of the above do we have a string.
I have allocated space for arr3, and copied arr and a terminating 0 to it.
Let''s check:
arr[0] = a, arr3[0] = a
arr[1] = b, arr3[1] = b
arr[2] = c, arr3[2] = c
arr3="abc"

I have allocated space for arr4, and copied the string arr3 to it.
Let''s check:
arr3="abc", arr4 = "abc"


On Sun,2004年7月25日15:56 :54 -0400,Martin Ambuhl

< ma ***** @ earthlink.net>写道:
On Sun, 25 Jul 2004 15:56:54 -0400, Martin Ambuhl
<ma*****@earthlink.net> wrote:
Profetas写道:
Profetas wrote:
这个函数是否存在于c?任何等价物?将字符串转换为
整数?

如何将数组转换为字符串
示例
char arr [''a''''' b'',''c''];
char * arr2;


char arr [3] = {''a'',''b'',''c''},* arr2;

如何我可以制作arr2 = arr吗?
does this function exist in c? on any equivalent? that convert string to
integer?

how do I convert a array to a "string"
example
char arr[''a'',''b'',''c''];
char *arr2;
char arr[3]={ ''a'', ''b'', ''c''}, *arr2;
how can I make arr2 = arr ?



你可以赚到它

这里我们有一个例子,有人甚至没有费心去检查
最基本的教科书。

#include< stdio.h>
#include< stdlib.h>
#include< string.h>

int main(void)
{arr [3] =" abc";


you can make it
Here we have an example of someone who has not bothered to check even
the most elementary textbook.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
char arr[3] = "abc";



这是对吗?

或者它更好吗?

char arr [] =" abc";

或者这个

char arr [4] =" ; ABC英寸; / * arr [4] == {a,b,c,0} * /



如果我写abc可执行文件中会有某个地方

'''''''''''''0?


Is this right?
or it is better this?
char arr[] = "abc";
or this
char arr[4]= "abc"; /* arr[4]=={a, b, c, 0}*/
?
If I write "abc" there will be somewhere in the executable
''a''''b''''c''0?


这篇关于strtoint的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆