字符简介

/*
   字符串演示
   */
#include <stdio.h>
int main() {
//char str[] = "abc";
//char str[3] = {'a', 'b', 'c'};
//char str[3] = {'a', 'b', 'c', '\0'};
char str[] = {'a', 'b', 'c', '\0'};
printf("%p\n", "abc");
printf("%p\n", "abc");
printf("%p\n", "ab""c");
printf("%c\n", *"abc");
printf("%hhd\n", *("abc" + 3));
printf("sizeof(str)是%d\n", sizeof(str));
return 0;

}


/*
   字符串演示
   */
#include <stdio.h>
#include <string.h>
int main() {
char str[20] = "abc";
printf("有效字符个数是%d\n", strlen("abcdef"));
    printf("%s\n", strcat(str, "xyz"));
printf("%s\n", str);
printf("比较结果是%d\n", strcmp("abc", "abd"));
printf("%s\n", strcpy(str, "tuv"));
printf("%s\n", str);
return 0;
}



/*
   字符串演示
   */
#include <stdio.h>
#include <string.h>
int main() {
char str[10] = {};
printf("请输入一个字符串:");
//scanf("%s", str);
fgets(str, 10, stdin);
printf("字符串是%s\n", str);
if (strlen(str) == 9 && str[8] != '\n') {
   scanf("%*[^\n]");
   scanf("%*c");
}
printf("请输入一个字符串:");
fgets(str, 10, stdin);
printf("字符串是%s\n", str);
return 0;
}


/*
   strcat作业
   */
#include <stdio.h>
char *mystrcat(char *dest, const char *src) {
char *dest1 = dest;
const char *src1 = src;
//查找'\0'字符位置
while (*dest1) {
dest1++;
}
//复制有效字符
while (*src1) {
*dest1 = *src1;
dest1++;
src1++;
}
*dest1 = 0;
return dest;
}
int main() {
char str[20] = "abc"; 
printf("%s\n", mystrcat(str, "xyz"));
//printf("%s\n", str);
return 0;
}




/*
   字符串作业
   */
#include <stdio.h>
#include <string.h>
const char *getnum(const char *src, int *p_num) {
const char *src1 = src;
*p_num = 0;
do {
//每次把一个数字字符合并到
//转换成的数字中
        *p_num = 10 * *p_num + *src1 - '0';
src1++;
} while (*src1 >= '0' && *src1 <= '9');
return src1;
}
int main() {
int res = 0, num = 0;
char opr = '+';
char buf[100] = {};
const char *p_start = buf;
//获得表达式
printf("请输入一个计算公式:");
fgets(buf, 100, stdin);
if (strlen(buf) == 99 && buf[98] != '\n') {
scanf("%*[^\n]");
scanf("%*c");
}
//按顺序从前到后处理表达式内容
//每次提取一个数字
while (*p_start) {
        p_start = getnum(p_start, &num);
if (opr == '+') {
res += num;
}
else {
res -= num;
}
        if (!*p_start) {
break;
}
else {
opr = *p_start;
p_start++;
}
}
printf("计算结果是%d\n", res);
return 0;
}



/*
   模拟登陆练习
   */
#include <stdio.h>
#include <string.h>
int main() {
char buf[10] = {};
int num = 0;
//每次循环进行一次登陆
for (num = 1;num <= 3;num++) {
//获得用户名并和正确用户名比较
printf("请输入用户名:");
fgets(buf, 10, stdin);
        if (strlen(buf) == 9 && buf[8] != '\n') {
scanf("%*[^\n]");
scanf("%*c");
}
if (strcmp(buf, "admin\n")) {
continue;
}
//获得密码并和正确密码比较
printf("请输入密码:");
fgets(buf, 10, stdin);
if (strlen(buf) == 9 && buf[8] != '\n') {
scanf("%*[^\n]");
scanf("%*c");
}
if (strcmp(buf, "123456\n")) {
continue;
}
//登陆成功则退出循环
break;
}
if (num <= 3) {
printf("登陆成功\n");
}
else {
printf("登陆失败\n");
}
return 0;
}




/*
   多个相关字符串演示
   */
#include <stdio.h>
int main() {
//char countries[][10] = {"China", "Russia",     "America", "England", "France"};
char *countries[] = {"China", "Russia", 
     "America", "England", "France"};
int num = 0;
for (num = 0;num <= 4;num++) {
printf("%s\n", countries[num]);
}
return 0;
}


/*
   二级指针演示
   */
#include <stdio.h>
int main() {
int num = 0;
int *p_num = &num;
int **pp_num = &p_num;
printf("pp_num是%p\n", pp_num);
printf("*pp_num是%p\n", *pp_num);
printf("**pp_num是%d\n", **pp_num);
return 0;
}
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值