字串A中刪除字串B中所有相同字母(無論大小寫)
/**
* @func: 字串A中刪除字串B中所有相同字母(無論大小寫)
* @date 2024/05/06
* @version 1.0 :版本
* CopyRight (c) 2023-2024 ni456xinmie@163.com All Right Reseverd
*/
void repeat(char *a, const char *b)
{
char *tmp = a; // 用來寫入新字串的指標
char *temp_b = b; // 用來遍歷b字串的臨時變數
while (*a)
{
int found = 0; // 標記是否找到了匹配的字元,如果找到,賦值為1,並退出迴圈;如果沒找到則進行賦值操作
for (temp_b = b; *temp_b; temp_b++)
{
if (*temp_b == *a ||
((*temp_b >= 'A' && *temp_b <= 'Z' && *a >= 'a' && *a <= 'z' && *temp_b + 32 == *a) ||
(*temp_b >= 'a' && *temp_b <= 'z' && *a >= 'A' && *a <= 'Z' && *temp_b - 32 == *a)))
// 判斷條件,當遇到b的字串為字母時,且其大/小寫與a字串相同時進行操作,與方案1相比,進行了最佳化
{
found = 1; // 找到了匹配的字元
break; // 退出本迴圈,忽略遇到的相同字元
}
}
if (!found)
{
*tmp++ = *a; // 如果沒有找到匹配,即沒有重複的字元,則複製字元
}
a++; // 總是移動 a 指標到下一個字元
}
*tmp = '\0'; // 設定字串的末尾為 '\0'
}
int main()
{
char a[] = "helloworld"; // 使用字元陣列而不是字串指標,否則無法修改
const char *b = "lo";
repeat(a, b);
printf("%s\n", a); // 直接列印字串
return 0;
}
統計二維陣列 int w【N】【N】周邊元素值的平均值,但要注意的是不要重複計算四個角上的元素值。
/**
* @func:計算二維陣列的周邊元素平均值
* @date 2024/05/06
* @version 1.0
* CopyRight (c) 2023-2024 ni456xinmie@163.com All Right Reseverd
*/
#define N 3
int main()
{
int w[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i = 0;
int sum = 0;
for (i = 0; i < N; i++) // 把第一行和最後一行加上
{
sum = sum + w[0][i] + w[N - 1][i];
}
for (i = 1; i < N - 1; i++) // 把左側和右側除了角部的數加上
{
sum = sum + w[i][0] + w[i][N - 1];
}
int ave=sum/(4N-4);
printf("%d \n", sum);
}
計數排序法:
/**
* @func:計數排序一個陣列
* @date 2024/05/06
* @version 1.0
* CopyRight (c) 2023-2024 ni456xinmie@163.com All Right Reseverd
*/
void CountSort(int A[], int B[], int bufsize)
{
int count = 0; // 記錄個數
for (int n = 0; n < bufsize; ++n)
{
count = 0; // 計數器清0
// n作為陣列A的元素下標
for (int m = 0; m < bufsize; ++m)
{
if (A[m] < A[n])
count++;
}
B[count] = A[n];
}
}
int main(int argc, char *const argv[])
{
int i;
int A[9] = {8, 6, 7, 11, 12, 13, 14, 2, 1};
int B[9] = {0};//利用另外一個陣列來儲存排序後的元素
int n = sizeof(A) / sizeof(A[0]);
for (i = 0; i < 9; i++)
printf("%d ", A[i]);
puts(""); // 前後兩次遍歷,進行對比
CountSort(A, B, n);
for (i = 0; i < 9; i++)
printf("%d ", B[i]);
}