关于C语言字符串的处理要特别注意:
1、C语言中没有bool函数,如果要用,需要使用宏定义。
2、字符串获取子串使用strncpy(str1, s+tem, i-tem);
3、C语言中字符串作为参数传递用法
4、字符串初始化/清空 memset
5、char str1[25]=""; 最后一位加'\0' 表示结尾。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef int bool;
#define true 1
#define false 0
int a[4];
void judge()
{
int i,flag = 0;
for(i=0; i<4; i++)
{
if(a[i]< 0 || a[i] > 255)
{
flag = 1;
break;
}
}
if(!flag)
printf("Yes!\n");
else
printf("No!\n");
}
void handle(char* s)
{
int i,tem=0,j=0;
char str1[25]="";
for(i=0; i<strlen(s); i++)
{
if(i==strlen(s)-1)
{
memset(str1, 0, sizeof(str1));
strncpy(str1, s+tem, i-tem+1);
int num = atoi(str1);
a[j++] = num;
}
if(s[i]=='.')
{
memset(str1, 0, sizeof(str1));
strncpy(str1, s+tem, i-tem);
str1[i+1] = '\0';
tem = i+1;
int num = atoi(str1);
a[j++] = num;
}
}
judge();
}
int main()
{
char str[25];
while(scanf("%s", str)==1)
{
handle(str);
}
return 0;
}
651km 发布了47 篇原创文章 · 获赞 10 · 访问量 7742 私信 关注