字符串演示
*/
#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 = #
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;
}