字符串相關函數、strcat,strcpy,strcmp

#include <stdio.h>
#include <string.h>

// 字符串追加
int main1()
{
	char str1[100] = "hello ";
	char str2[]  = "world";
	
	// 把字符出str2的內容 放到字符串str1的末尾
	// 注意:str1空間必須足夠大,否則就會越界
	strcat(str1, str2);
	
	// 只將str2的前兩個字符放到str1的後面
	strncat(str1, str2, 2);
	
	puts(str1);
	
	
	return 0;
}

// 字符串的判斷
int main2()
{
	//char str1[] = "hello ";
	//char str1[] = "world";
	char str1[] = "workasjdksahdksahd";
	char str2[] = "world";
	
	// 用於比較兩個字符串的大小
	// 如果兩個字符串相等,這個值爲0
	if(strcmp(str1, str2) == 0)
	{
		printf ("str1 == str2\n");
	}
	else
	{
		printf ("str1 != str2\n");
	}
	
	if(strncmp(str1, str2, 3) == 0)
	{
		printf ("str1 == str2\n");
	}
	else
	{
		printf ("str1 != str2\n");
	}
	
	return 0;
}

// 字符串的拷貝
int main3()
{
	char str1[100] = "hello ";
	char str2[] = "wor";
	
	// str1 = str2  字符數組不能直接賦值
	// 用str2的值替換str1
	// 注意:str1要足夠大,不然會越界
	//strcpy(str1, str2);
	
	// 用str2的前兩個字符替換str1
	strncpy(str1, str2, 2);
	puts(str1);
	
	return 0;
}

int main4()
{
	char str[100];
	// str = "hello"; 不可以對字符數組直接賦值
    strcpy(str, "hello");
	puts(str);	
	return 0;
}

// 字符串拷貝(還可以指針方式)
int main()
{
	char str1[100] = "hello";
	char str2[] = "worldkgffijhgkjhgkjh";
	
	// 拷貝實現
	char *p1 = str1;
	char *p2 = str2;
	
	while (*p2)
	{
		*(p1++) = *(p2++);
	}
	*p1 = '\0';
	
	puts(str1);
	
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章