c语言字符串
一 数组的初始化
#include <stdio.h>
#include <windows.h>
int main()
{
// 初始化方式1
int age[5] = { 16,18,20,19,17 };
// 初始化方式2
int weight[5] = { 100,98 }; // weight[0] = 100, weight[1] = 98,其他都初始化为0
// 初始化方式3
float height[] = { 1.60, 1.72, 1.74, 1.65, 1.80 }; // 等效于int height[5] = { 160, 172, 174, 165, 180 };
for (int i = 0; i < 5; i++)
{
printf("同学%d 年龄:%d 身高:%.2f 体重:%d\n", i + 1, age[i], height[i], weight[i]);
}
// 数组元素访问时,要注意下表越界的问题
// age[5] = 23; //访问越界
system("pause");
return 0;
}
二 c语言字符串的存储、初始化
- 在c语言中,字符串是以“字符数组”存储的。
#include <stdio.h>
#include <windows.h>
int main()
{
// 初始化1
char name1[10] = "wangli"; // char name[10] = {'w','a','n','g','l','i','\0'};
printf("%s\n", name1);
// 初始化2
char name2[] = "wangli";
printf("name2的大小是%d\n", sizeof(name2)); // 7
system("pause");
return 0;
}
三 c语言字符串的输入输出
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <windows.h>
int main()
{
char name[16];
char addr[64];
printf("姑娘芳名?\n");
scanf("%s", name);
printf("%s姑娘,家住哪里?\n",name);
rewind(stdin); // 清空输入缓冲区
gets_s(addr, 64); // 读一行,直到遇到回车符
printf("家住%s的%s姑娘,我中意你哦!\n", addr, name);
printf("addr的长度是:%d\n", strlen(addr));
system("pause");
return 0;
}
四 c语言strlen()和sizeof()
#include <stdio.h>
#include <windows.h>
int main()
{
char name[] = "wangli";
printf("strlen: %d\n", strlen(name)); // 不包括'\0'
printf("sizeof: %d\n", sizeof(name)); // 包括'\0'
system("pause");
return 0;
}
五 c语言字符串的比较
int strcmp(const char *str1, const char *str2)
- 返回值:
str1 < str2时,返回值 < 0
str1 = str2时,返回值 = 0
str1 > str2时,返回值 > 0
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <Windows.h>
#include <string.h>
int main()
{
char addr[1024] = {0};
printf("美女,你是哪里人?");
scanf("%s", addr);
if (strcmp(addr, "湖南") ==0)
{
printf("美女,我们是老乡啊!\n");
}
else
{
printf("美女,你和我同学是老乡啊!\n");
}
system("pause");
return 0;
}