c语言 如何将已赋值的字符串初始化为空?

来源:百度知道 编辑:UC知道 时间:2024/05/24 21:23:36
谢谢。
void create(char *a,int *b) /*a, b都是数组*/
{
int i,j,k,tag=0,count=0; /*count表示总数字数,tag表示连续数字的组数*/
char tem[LENGTH*2];
for(i=0;i<LENGTH*2;i++)
{
if ((a[i]>='0')&&(a[i]<='9'))
{
for(j=i;j<LENGTH*2;j++)
{
if ((a[j]>'9')||(a[j]<'0')||(a[j]=='\0'))
{
tag++;
break;
}
count++;
tem[j-i]=a[j];
}

i=j--;
}

b[tag]=atoi(tem); printf("%d ",b[tag]); /*!!*/
}
printf("\nTotal number: %d \nThe number of t

可以使用memset函数将字符串数组中所有元素全部设置为\0即可。

函数原型:void *memset(void *s, int ch, size_t n);

函数说明:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。 

示例:

#include <stdio.h>
#include <string.h>
 
int main()
{
char buf[256] = "hello world"; //buf字符数组初始化
printf("%d\n", strlen(buf));  
memset(buf, 0x00, sizeof (char) * 256); //全部设置为0x00即\0字符
printf("%d\n", strlen(buf));   
return 0;
}

如果是指针字符串,可以直接给字符串赋值为NULL,如果不是指针字符串的话,没必要初始化,因为他们用完后就自动释放内存空间了。