c語言批量重名,批量重命名代碼

本文目錄一覽:

C語言,關於局部變量重名的問題。

對於這道題你可以由外向內這樣分。

單個文件中分為3個級別的空間:

函數外一個空間:全局變量,具有靜態存儲,從定義出到這個文件結尾範圍的函數可以使用

函數內:自動變量,離開函數就釋放

複合體(大括號內):自動變量,離開大括號就自動釋放

說明:大致上就是這3部分,內和外有同名的,內將屏蔽外部變量。但是在同一級上的同名將導致出現多次定義的錯誤

多個文件涉及:只能有一個定義的外部鏈接

(c++的話還有類和名稱空間)

你的第一個例子2個x的定義都是在main函數內的同一級上,重複定義。

第二個例子int x=3隻能在大括號中生存,而且屏蔽了x=1的那個定義。

用C語言批量更改文件名

#include stdio.h

#include sys/types.h

#include sys/stat.h

#include unistd.h

#include dirent.h

#include string.h

#include iconv.h

#include errno.h

/*int to_iconv(char *in,size_t in_bytes,char *out,size_t out_bytes,

const char *from,const char *to)*/

int to_iconv(char *in,char *out,size_t out_bytes,const char *from,const char *to)

{

iconv_t cd;

size_t in_bytes=strlen(in);

//size_t out_bytes;

if((cd=iconv_open(to,from)) == (iconv_t)-1)

{

perror(“iconv_open”);

return -1;

}

if(iconv(cd,in,in_bytes,out,out_bytes) == -1)

{

perror(“iconv”);

return -1;

}

iconv_close(cd);

return 0;

}

void read_and_iconv(char *path,const char *from,const char *to)

{

DIR *dirp;

struct dirent *dir;

struct stat buf;

char temp[512]; //用於保存轉換後的文件名稱

if((dirp=opendir(path)) == NULL) //讀取文件夾

{

perror(“opendir”);

return;

}

chdir(path); //進入到該文件夾內部

while(dir=readdir(dirp)) //讀取該文件夾下所有文件

{

if((strcmp(dir-d_name,”.”) == 0) || (strcmp(dir-d_name,”..”) == 0))

//過濾掉.以及..文件夾,不然會死循環的

continue;

bzero(temp,sizeof(temp));

to_iconv(dir-d_name,temp,sizeof(temp),from,to); //進行編碼轉換

rename(dir-d_name,temp); //進行重命名

printf(“rename %s to %s\n”,dir-d_name,temp);

stat(temp,buf);

if(S_ISDIR(buf.st_mode)) //判斷當前讀取的文件是否為文件夾

{

read_and_iconv(temp,from,to); //如果是則遞歸處理

chdir(“..”); //處理完成後一定要記得返回上一層目錄哦,不然其它文件就無法處理了

}

}

closedir(dirp);

}

int main(int argc,char **argv)

{

read_and_iconv(argv[1],argv[2],argv[3]);

/*第一個參數是要轉換的文件夾所在的文件夾名稱

*第二個參數是文件名稱所使用的編碼(這裡為GBK)

*第三個參數是要轉換成何種編碼(這裡為UTF-8)

*/

return 0;

}

關於c語言查詢賬號重名的一道題

#includestdio.h

#includestdlib.h

#includestring.h

int main()

{

char a[50];

char b[10][10] = { { “Alice” }, { “Bob” }, { “Lucky” }, { “Kitty” }, { “Tim” }, { “Lucy” }, { “Jim” }, { “Helena” } };

int c[1000], x, y, z, i, j;

while (1){

scanf(“%s”, a);

if (!strcmp(a, “END”))

break;

y = 0;

for (i = 0; i  10; i++)

{

z = strcmp(a, b[i]);

if (z == 0)

y = 1;

}

if (y == 1)

printf(“NO”);

else

printf(“Yes”);

printf(“\n”);

}

system(“pause”);

return 0;

}

c語言中局部變量可以同名么?

在C語言中,相同作用域範圍的局部變量不可以同名。所以,在不同作用域下,可以出現局部變量同名的情況。

1 在不同函數中。

函數不同,局部變量完全無關,自然可以使用相同的名字。

2 在同一函數中,但作用域不同。

局部變量的作用域是定義位置,到所在大括號結束。

所以只要兩個局部變量屬於不同的大括號中,就可以同名。

比如

void func()

{

    int a;

    while(1)

    {

        int a;

    }

    for(;;)

    {

        int a;

    }

}

這裏面,第一個a的作用域包含了第二個和第三個,而後兩個之間作用域不相關。三個a分別屬於三個不同的大括號,可以同名。

c語言如何一次改變多個相同的參量名字

你說的這些是C++的函數重載,C++是可以的,但C語言不支持函數重載

比如:

void fun(int n) 與int fun(int n)就是名稱相同,返回類型不同,參數相同

void fun(int n) 與int fun(int n,int s)就是名稱相同,返回類型不同,參數類型相同個數不同

int fun(int n) 與int fun(int n,int s) 名稱相同,返回類型相同,參數類型相同個數不同

所以這些在用C語言編程時都會報錯,就是不行

如何用c語言進行文件的批量重命名

這個簡易的 按照你的方法改名的程序

在UNIX下測試可用

如果想在windows下用的話 可以用dev c++編譯

#include stdio.h

#include unistd.h

#include dirent.h

int main(int argc, char **argv)

{

DIR *dirp;

struct dirent *dirt;

char dir_name[100];

int file_count=1; //file_count為計數.

if (argc != 2){

printf(“argument miss\n”);

exit(1);

}

if ((dirp = opendir(argv[1])) ==NULL){

printf (“open dir %s failed\n”,argv[1]);

exit(1);

}

chdir(argv[1]);

while ( (dirt = readdir(dirp)) != NULL){

if ((strcmp(dirt-d_name,”..”) !=0) (strcmp(dirt-d_name,”.”)!=0)){

memset(dir_name, 0, sizeof(dir_name));

strcpy(dir_name, dirt-d_name);

sprintf(dir_name + strlen(dirt-d_name), “_%d”, file_count++);

if (rename(dirt-d_name, dir_name) 0){ //dir_name 為新的命名

printf(“rename failed\n”);

exit(1);

}

}

}

return 0;

}

原理挺簡單 你輸入一個文件夾作為參數 然後程序就打開這個文件夾遍歷這個文件夾里的文件,把這個文件的名字取出來後面加上 “_計數” 用rename 重新命名就行了.

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/197552.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 20:04
下一篇 2024-12-03 20:04

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在着手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29

發表回復

登錄後才能評論