遍历字符串数组的三种fangfa
在这⾥我们重点介绍遍历字符串的三种⽅法。
  ⾸先我们来看⼀道编程题⽬:
  输⼊⼀个字符串,且都是数字,也可以是负数,转化成相应的整型数并输出,若输⼊字母则停⽌。
  我们知道,在C语⾔⾥有⼀个函数是“atoi”,它可以把字符串转换成整型数,包含在头⽂件stdlib.h中。以下是我们使⽤了这个函数的代码。
[objc]
1. #include <stdio.h>
2.
3. #define MAX_SIZE 1024
4.
5. int main()
6. {
7.    char str[MAX_SIZE] = {0};
8.
9.    int result;
10.    int i;
11.
12.    printf("Please input string : ");
13.    gets(str);
14.
15.    result = atoi(str);
16.
17.    printf("result = %d\n",result);
18.
19.    return 0;
20. }
#include <stdio.h>
#define MAX_SIZE 1024
int main()
{
char str[MAX_SIZE] = {0};
int result;
int i;
printf("Please input string : ");
gets(str);
result = atoi(str);
printf("result = %d\n",result);
return 0;
}
运⾏结果:
正数:
[objc]
1. Please input string : 123456
2. result = 123456
Please input string : 123456
result = 123456
负数:
[objc]
1. Please input string : -123456
2. result = -123456
Please input string : -123456
result = -123456
带字母的字符串:
[objc]
1. Please input string : 123a456
2. result = 123
Please input string : 123a456
result = 123
  使⽤“atoi”函数做这道题很简单,那么我们能不能⾃⼰写⼀个函数来实现把字符串转换成整型数的功能呢?下⾯是我们⾃⼰写⼀个函数来实现把字符串转换成整型数的功能的代码。
[objc]
1. #include <stdio.h>
2.
3. #define MAX_SIZE 1024
4.
5. int my_atoi(charchar *str)
6. {
7.    int i = 0;
8.    int result = 0;
9.    int flag = 1;
10.
11.    if (*str == '-')
12.    {
13.        flag = -1;
14.        str++;
15.    }
16.
17.    while (*str != '\0')
18.    {
19.        if (*str >= '0' && *str <= '9')
20.        {
21.            result = result * 10 + ( *str - '0' );
22.        }
23.        else
24.        {
25.            break;
26.        }
27.
28.        str++;
29.    }
30.
31.    return result *flag;
32. }
33.
34. int main()
35. {
36.    char str[MAX_SIZE] = {0};
37.
38.    int result;
39.    int i;
40.
41.    printf("Please input string : ");
42.    gets(str);
43.
44.    result = my_atoi(str);
45.
46.    printf("result = %d\n",result);
47.
48.    return 0;
49. }
#include <stdio.h>
#define MAX_SIZE 1024
int my_atoi(char *str)
{
int i = 0;
int result = 0;
int flag = 1;
if (*str == '-')
{
flag = -1;
str++;
}
while (*str != '\0')
{
if (*str >= '0' && *str <= '9')
{
result = result * 10 + ( *str - '0' );
}
else
{
break;
}
str++;
}
return result *flag;
}
int main()
{
char str[MAX_SIZE] = {0};
int result;
int i;
printf("Please input string : ");
gets(str);
result = my_atoi(str);
printf("result = %d\n",result);
return 0;
}
运⾏结果:
正数:
[objc]
1. Please input string : 987654321
printf怎么输出字符2. result = 987654321

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。