【C语言】关于遍历字符串的三种方法
1. for循环(字符数组)
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 1024
int main()
{
char src[MAX_SIZE] = {0};
int len;
printf("Please input string : ");
gets(src);
len = strlen(src);
printf("string = ");
for (int i = 0; i < len; i++)
{
printf("%c", src[i]);
}
printf("\n");
return 0;
}
运行结果:
Please input string : abcdefg123456
string = abcdefg123456
在这里我们首先利用了strlen
函数测量字符数组的长度,然后用for循环遍历字符串,将输入的字符串的内容一个字符一个字符输出。
2. while循环(字符数组)
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 1024
int main()
{
char src[MAX_SIZE] = {0};
int i = 0;
printf("Please input string : ");
gets(src);
printf("string = ");
while (src[i] != '\0')
{
printf("%c", src[i]);
i++;
}
printf("\n");
return 0;
}
运行结果:
Please input string : congcong123456
string = congcong123456
由于输入的字符串的长度是未知的,然而遍历字符串的时候需要用到循环,所以,当循环次数未知时,最好使用while语句。
3. while循环(指针)
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 1024
int main()
{
char src[MAX_SIZE] = {0};
char *temp = src;
printf("Please input string : ");
gets(src);
printf("string = ");
while (*temp != '\0')
{
printf("%c", *temp);
temp++;
}
printf("\n");
return 0;
}
运行结果:
Please input string : congcong123
string = congcong123
在这里我们首先定义了一个指针变量,指向数组的首地址,那为什么要定义这个指针变量呢?为什么不直接用“src++
;”呢?
首先,我们要知道的是数组名代表了什么:
- 指针常量
- 数组首元素的地址
既然数组名代表了指针常量,常量怎么可以自增呢?所以不可以用“src++
;”,如果使用“src++
;”,那么在编译时便会报错“错误:自增运算中的左值无效”。
以上为遍历字符串的三种方法,希望我们以后可以熟练地运用这三种方法遍历字符串。
在上述“将字符串转化成整型数”的编程题中,还有一个小知识点,就是如何准确地将正数和负数表示出来。首先我们可以利用一个“flag”,我们将flag初始化为1,符号会出现在我们所输入的字符串的首位,只需要判断这个是不是‘-’,如果是的话,将flag置为-1,最后将结果与flag相乘即可,如果是正数,则不用管,正数乘1还是原数。
————————————————
原文链接:https://blog.csdn.net/newcong0123/article/details/51920797