#include <stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
#include<errno.h>
#include<ctype.h>
#define _CRT_SECURE_NO_WARNINGS 1
void* my_memcopy(void* dest,void* str, size_t num);
struct
{
char a
}a;//匿名名结构体
struct Node
{
int data;
//struct Node n;//错误的写法
struct Node* next;
}Node;
int main()
{
char arr[] = "I AM SS";
int i = 0;
while (arr[i])
{
if (isupper(arr[i]))
{
arr[i]= tolower(arr[i]);
}
i++;
}
printf("%s", arr);
return 0;
/*char arr[] = "sdad@dasdsa.cc";
const char* p = "@.";
char* ret = NULL;
for ( ret = strtok(arr,p); ret !=NULL; ret=strtok(NULL,p))
{
printf("%s", ret);
}
return 0;*/
//char* str = strerror(errno);
/*FILE* pf = fopen("t1.txt", "r");
if (pf==NULL)
{
printf("%s", strerror(errno));
}
else
{
printf("yes");
}*/
}
//NULL 空指针
//Null \0
//strtok分割函数
//memcpy memmove处理重叠
void* my_memcopy(void* dest, void* str, size_t num)
{
void* ret = dest;
assert(dest != NULL);
while (num--)
{
*(char*)dest = *(char*)str;
++(char*)dest;
++(char*)str;
}
return ret;
}
//结构体大小
//结构体内存计算
//低碳钢成员相当于偏移量0地址处
//对齐某个数字的整数倍
//结构体大小为最大对齐数的整数倍
//对齐原因
//平台原因 某些硬件读取特定位置
//空寂那换时间 内存访问一次
//#pragma pack()设置对齐数
//offsetof(struct s, i)设置偏移量
#include <stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
#include<errno.h>
#include<ctype.h>
#define _CRT_SECURE_NO_WARNINGS 1
struct Stu
{
char name;
};
struct Stu1
{
int a :10;
};
//传值
void printf1(struct Stu t);
//传址
void init(struct Stu* ps);
int main()
{
struct Stu s = { 0 };
init(&s);
printf1(s);
return 0;
}
void init(struct Stu *ps)
{
ps->name = 'x';
}
void printf1(struct Stu t)
{
printf("%c", t.name);
}
//位段
//节约空间
//不能跨平台