C语言。如何清空字符(串)数组、另求字符数组和字符串数组区别。 C语言的字符数组和字符串的区别

c\u8bed\u8a00\u5b57\u7b26\u6570\u7ec4\u5982\u4f55\u91ca\u653e\u6d88\u6bc1\uff1f

\u4f60\u63d0\u95ee\u4e2d\u5b9a\u4e49\u65b9\u5f0f\u662f\u5728\u51fd\u6570\u5b8c\u6210\u524d\u91ca\u653e\u4e0d\u4e86\u7684\uff0c\u4f60\u5b9a\u4e49\u7684\u5b57\u7b26\u6570\u7ec4\uff0c\u653e\u5728stack\u7a7a\u95f4\uff0c\u4e0d\u80fd\u7528free()\u8bd5\u56fe\u91ca\u653e\u5806\u4e2d\u7684\u5185\u5bb9\uff0c\u56e0\u4e3a\u90a3\u91cc\u662f\u4e00\u6bb5\u7a0b\u5e8f\u8fd0\u884c\u7684\u4fdd\u8bc1\u3002

\u53ea\u6709\u4f7f\u7528malloc\uff08\uff09\u5728\u6808\u7a7a\u95f4\u5f00\u8f9f\u7684\u52a8\u6001\u5185\u5b58\u624d\u80fd\u88ab\u91ca\u653e\uff01

\u5982\u679c\u4f60\u540e\u9762\u7684\u4ee3\u7801\u60f3\u7ee7\u7eed\u7528\u8fd9\u4e2a\u6570\u7ec4\u540d\u7684\u8bdd\uff0c\u8fd9\u4e2a\u6570\u7ec4\u8fd8\u662f\u53ef\u4ee5\u91cd\u65b0\u8d4b\u503c\u3002\u4f60\u53ef\u4ee5\u628a\u4f60\u7528\u5230\u7684\u6570\u636e\u72ec\u5230\u8fd9\u4e2a\u53d8\u91cf\u4e2d\u5c31\u884c\u4e86\uff01

\u4f60\u5b9a\u4e49\u7684anto\u6570\u7ec4\u5728\u51fd\u6570\u5b8c\u6210\u540e\uff0c\u7cfb\u7edf\u81ea\u5df1\u5c31\u56de\u6536\u4e86\uff01

1\u3001\u957f\u5ea6\u4e0d\u540c\uff1a
\u5bf9\u4e8e\u5b57\u7b26\u6570\u7ec4\uff0c\u5176\u957f\u5ea6\u662f\u56fa\u5b9a\u7684\uff0c\u5176\u4e2d\u4efb\u4f55\u4e00\u4e2a\u6570\u7ec4\u5143\u7d20\u90fd\u53ef\u4ee5\u4e3a null \u5b57\u7b26\u3002\u56e0\u6b64\uff0c\u5b57\u7b26\u6570\u7ec4\u4e0d\u4e00\u5b9a\u662f\u5b57\u7b26\u4e32\u3002\u5b57\u7b26\u4e32\u7684\u7ed3\u5c3e\u662f\u4ee5null \u5b57\u7b26\u7ed3\u5c3e\uff0c\u6240\u4ee5\u957f\u5ea6\u4f1a\u6709\u6240\u4e0d\u540c\u3002
2\u3001\u7ed3\u5c3e\u4e0d\u540c
\u5bf9\u4e8e\u5b57\u7b26\u4e32\uff0c\u5b83\u5fc5\u987b\u4ee5 null \u5b57\u7b26\uff08\u4e5f\u5c31\u662f'\0'\uff0c\u7528\u5341\u516d\u8fdb\u5236\u8868\u793a\u4e3a 0x00\uff09\u7ed3\u5c3e\uff0c\u5176\u540e\u7684\u5b57\u7b26\u4e0d\u5c5e\u4e8e\u8be5\u5b57\u7b26\u4e32\u3002
\u5b57\u7b26\u4e32\u4e00\u5b9a\u662f\u5b57\u7b26\u6570\u7ec4\uff0c\u5b83\u662f\u6700\u540e\u4e00\u4e2a\u5b57\u7b26\u4e3a null \u5b57\u7b26\u7684\u5b57\u7b26\u6570\u7ec4\u3002\u5b57\u7b26\u6570\u7ec4\u5219\u4e0d\u4f1a\u81ea\u52a8\u589e\u52a0\u4efb\u4f55\u4e1c\u897f\u3002
3\u3001\u5bf9\u4e8e\u5b57\u7b26\u4e32\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 printf \u7684 %s \u6253\u5370\u5176\u5185\u5bb9\uff1b\u800c\u5bf9\u5b57\u7b26\u6570\u7ec4\uff0c\u5f88\u663e\u7136\u4f7f\u7528 printf \u7684 %s \u6253\u5370\u5176\u5185\u5bb9\u662f\u4e0d\u5408\u9002\u7684\u3002

\u6269\u5c55\u8d44\u6599\uff1a\u5b57\u7b26\u4e32\u51fd\u6570\u5e94\u7528
1.\u8fde\u63a5\u8fd0\u7b97 concat(s1,s2,s3\u2026sn) \u76f8\u5f53\u4e8es1+s2+s3+\u2026+sn.
\u4f8b\uff1aconcat('11','aa')='11aa';
2. \u6c42\u5b50\u4e32\u3002 Copy(s,I,I) \u4ece\u5b57\u7b26\u4e32s\u4e2d\u622a\u53d6\u7b2cI\u4e2a\u5b57\u7b26\u5f00\u59cb\u540e\u7684\u957f\u5ea6\u4e3al\u7684\u5b50\u4e32\u3002
\u4f8b:copy('abdag',2,3)='bda\u2019
3. \u5220\u9664\u5b50\u4e32\u3002\u8fc7\u7a0b Delete(s,I,l) \u4ece\u5b57\u7b26\u4e32s\u4e2d\u5220\u9664\u7b2cI\u4e2a\u5b57\u7b26\u5f00\u59cb\u540e\u7684\u957f\u5ea6\u4e3al\u7684\u5b50\u4e32\u3002
\u4f8b\uff1as:='abcde';delete(s,2,3);\u7ed3\u679cs:='ae';
4. \u63d2\u5165\u5b50\u4e32\u3002 \u8fc7\u7a0bInsert(s1,s2,I) \u628as1\u63d2\u5165\u5230s2\u7684\u7b2cI\u4e2a\u4f4d\u7f6e
\u4f8b\uff1as:=abc;insert('12',s,2);\u7ed3\u679cs:='a12bc';
\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u767e\u79d1 c\u8bed\u8a00\uff08c\u8bed\u8a00\uff09

所谓清空数组,是要清空每个元素;清空字符串是将字符串置为空,这两个要求有异。

清空数组:char a[100]; int i; for ( i=0;i<100;i++ ) a[i]=0;

清空字符串:char a[100]; a[0]=0; //或a[0]='\0';

因为字符串以0结束,只要将字符串数组第1个字符设置为0值即算清空了字符串。


扩展资料:

C语言函数

C语言isupper()函数:判断一个字符是否是大写字母

C语言isspace()函数:判断一个字符是否是空白符

C语言isprint()函数:判断一个字符是否是可打印字符

C语言islower()函数:判断一个字符是否是小写字母

C语言ldexp()函数:返回x乘以2的exponent次方(次幂)的值

int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0

int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F)

参考资料来源:百度百科-C语言函数



所谓清空数组,是要清空每个元素;清空字符串是将字符串置为空,这两个要求有异。
清空数组:char a[100]; int i; for ( i=0;i<100;i++ ) a[i]=0;
清空字符串:char a[100]; a[0]=0; //或a[0]='\0';
因为字符串以0结束,你只要将字符串数组第1个字符设置为0值即算清空了字符串。
存放字符串的字符数组就是你说的字符串数组,只不过说明这个字符型数组是用于存放字符串的而已,官方可没有这个说法,只要字符型数组一说。

memset(a, 0 , sizeof(a));
这样就好了,记得加上头文件<string.h>
a = '\0';不对是因为a是一个数组的首地址,你给一个地址上写一个'\0'是不被允许的操作。

全部清零如1楼所说的memset可以,不过通常字符数组初始化第一个元素为空即可,即a[0]='\0
'

  • c璇█ 鍏充簬瀛楃鏁扮粍鍜屾暣鍨嬫暟缁勬竻闆
    绛旓細C璇█鏁扮粍鍜屾暣鍨鏁扮粍娓呯┖鏂规硶锛岀ず渚嬶細1銆佹暣鏁版暟缁勬竻闆 鍑芥暟锛歷oid bzero锛坴oid *s, int n锛夊ご鏂囦欢锛 #include <string.h> 鍔熻兘璇存槑锛氬皢瀛楃涓s鐨勫墠n涓瓧绗︾疆涓0锛屼竴鑸琻鍙杝izeof(s)锛屽皢鏁村潡绌洪棿娓呴浂锛涗妇渚嬶細char str[10]; bzero(str, sizeof(str)); 涔熷彲浠ュ皢鏁翠釜缁撴瀯浣撴竻闆讹紱2銆佹暟缁...
  • C璇█銆濡備綍娓呯┖瀛楃(涓)鏁扮粍銆佸彟姹瀛楃鏁扮粍鍜屽瓧绗涓叉暟缁鍖哄埆銆
    绛旓細鎵璋撴竻绌烘暟缁勶紝鏄娓呯┖姣忎釜鍏冪礌锛涙竻绌哄瓧绗︿覆鏄皢瀛楃涓茬疆涓虹┖锛岃繖涓や釜瑕佹眰鏈夊紓銆傛竻绌烘暟缁勶細char a[100]; int i; for ( i=0;i<100;i++ ) a[i]=0;娓呯┖瀛楃涓诧細char a[100]; a[0]=0; //鎴朼[0]='\0';鍥犱负瀛楃涓蹭互0缁撴潫锛屽彧瑕佸皢瀛楃涓叉暟缁勭1涓瓧绗﹁缃负0鍊煎嵆绠楁竻绌轰簡瀛楃涓层
  • 璇锋暀C璇█涓瀛楃涓叉暟缁勬庝箞娓呯┖
    绛旓細for(i = 0; i < 4; i ++)a[i]=0;璇绋嬪簭鍔熻兘涓洪亶鍘鏁扮粍a锛岄愪釜灏嗗厓绱犺祴鍊间负0锛屽疄鐜娓呯┖鏁堟灉銆
  • c++ 濡備綍鎶瀛楃涓叉竻绌
    绛旓細} // cout<<num<<endl; //瀛愪覆鍑虹幇鐨勬鏁
  • ...瀛楃銆傚氨鏄涓娆℃ф妸瀛楃涓鐨勬墍鏈瀛楃娓呴櫎~
    绛旓細char s[] = "C Traps and Pitfalls";鏂规硶涓銆乻[0] = '\0'; // 灏嗗崟鍏0缃0 鏂规硶浜屻乫or(i = 0; s[i]; ++i) s[i] = '\0'; // 姣忎釜鍗曞厓閮界疆0 鏂规硶涓夈乵emset(s,0,strlen(s)); // 鍒╃敤绯荤粺鍑芥暟灏嗘瘡涓崟鍏冮兘缃0锛岀畝渚裤佸揩閫 ...
  • C璇█涓娓呯┖瀛楃涓鐨勫簱鍑芥暟
    绛旓細1.strcpy include <string.h> char *strcpy(char *str1, const char *str2);鎶瀛楃涓str2(鍖呮嫭'\0')鎷疯礉鍒板瓧绗︿覆str1褰撲腑锛屽苟杩斿洖str1銆2. strncpy include <string.h> char *strncpy(char *str1, const char *str2, size_t count);鎶婂瓧绗︿覆str2涓渶澶歝ount涓瓧绗︽嫹璐濆埌瀛楃涓瞫tr1涓...
  • c璇█瀛楃鏁扮粍濡備綍閲婃斁娑堟瘉?
    绛旓細浣犳彁闂腑瀹氫箟鏂瑰紡鏄湪鍑芥暟瀹屾垚鍓嶉噴鏀句笉浜嗙殑,浣犲畾涔夌殑瀛楃鏁扮粍,鏀惧湪stack绌洪棿,涓嶈兘鐢╢ree()璇曞浘閲婃斁鍫嗕腑鐨勫唴瀹,鍥犱负閭i噷鏄竴娈绋嬪簭杩愯鐨勪繚璇併傚彧鏈変娇鐢╩alloc()鍦ㄦ爤绌洪棿寮杈熺殑鍔ㄦ佸唴瀛樻墠鑳借閲婃斁!濡傛灉浣犲悗闈㈢殑浠g爜鎯崇户缁敤杩欎釜鏁扮粍鍚嶇殑璇,杩欎釜鏁扮粍杩樻槸鍙互閲嶆柊璧嬪笺備綘鍙互鎶婁綘鐢ㄥ埌鐨勬暟鎹嫭鍒拌繖涓彉閲忎腑灏辫浜!浣犲畾...
  • c璇█ 瀛楃鏁扮粍娓呯┖闂
    绛旓細杩欐牱鍐欐病閿;;char ch[80] = {0};杩欐牱绛変簬鍦ㄥ垵濮嬪寲鐨勬椂鍊欐妸鏁扮粍閮芥竻0浜嗐傘備綘瑕佽嚜宸遍潪寰楄偗瀹氫笅鏉ョ殑璇濓紝鍙互鐢ㄤ竴涓猣or寰幆鎵撳嵃鍑烘潵灏卞ソ浜嗭紱for( i = 0; i < 80; ++i)printf("ch[%d] = %d", i, ch[i]);
  • C璇█涓 濡備綍鎶瀛楃涓涓煇涓浣娓呯┖?
    绛旓細鍋囪杩欎釜涓缁瀛楃涓叉暟缁鏄痵tr[80]---涓嶄竴瀹氭槸涓缁村瓧绗︿覆鏁扮粍锛屽缁存暟缁勶紝缁撴瀯閮藉彲浠ャ傛柟娉1锛氫娇鐢ㄨ繍琛屽簱鍑芥暟memset():memset(str, 0, sizeof(str));鏂规硶2锛氫娇鐢╓indows API鍑芥暟ZeroMemory():ZeroMemory(str, sizeof(str));浣嗕笉鑳界敤浜庢寚閽堛傛寚閽堢殑鎯呭喌涓嬶紝蹇呴』杩欐牱:struct mystr *p;...memset(...
  • C璇█濡備綍瀹炵幇鍒犻櫎瀛楃涓涓殑瀛楃
    绛旓細C璇█鍒犻櫎瀛楃涓涓寚瀹氬瓧绗﹀彲浠ュ弬鑰冧笅闈㈢殑浠g爜锛歩nclude<stdio.h> int main { char * fun(char * s);char arg[] = "hello.cgi?name1=value1&name2=value2";printf("This value :%s\n",fun(arg));getchar();return 0;} char * fun(char * s){ char *s1 = s; //s1鎸囧悜瀛楃涓查...
  • 扩展阅读:c++入门程序代码 ... c++必背入门代码 ... c语言代码生成器 ... 批量清空前后空字符串 ... 编程必背100个代码 ... c语言必背100代码 ... cnc编程必背50个程序 ... 怎么清空一个数组 ... 批量删除前后的空字符串 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网