重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C语言不能返回字符串,你只能给函数一个字符数组的参数,用参数来返回
创新互联-专业网站定制、快速模板网站建设、高性价比盐池网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式盐池网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖盐池地区。费用合理售后完善,10余年实体公司更值得信赖。
void foo(char *str,int n)
{
str[0] = 'a';
str[1] = 'b';
str[2] = 'c';
}
int main()
{
char c[255] = {'\0'};
foo(c,255);
printf("%s\n",c);
}
函数参数里的n是用于判断这个字符串长度,以防越界操作
scanf将接收到的回车扔回到缓冲区,gets将接收到的回车符号转变为\0存入str,使用gets不检查字符串是否超出大小,存在安全问题,建议用fgets
#include stdio.h
#include string.h
int main(void){
char str1[10]="aaaaaaaaa",str2[10]="bbbbbbbbb";
scanf("%s",str1);
// getchar();
gets(str2);
return 0;
}
这里面的getchar()就是为了接收扔回到缓冲区的回车,否则,str2只能接收到一个回车符。
5 scanf("%s",str1);
(gdb) s
abcdef
(gdb) p str1
$1 = "abcdef\000aa"
(gdb) p str2
$2 = "\000bbbbbbbb"
1、可以写一个函数接受一个字符串和一个字符,如果此字符出现在字符串中,就将串中的字符删除,要求删除该字符后,后续的字符向前移,以填充该空位。
2、例程:
#includestdio.h
#includestring.h
#define MAX 80
void Delete(char str[],char c)
{
int i;
int l=strlen(str);
for(i=0;il;i++)
{
if(str[i] == c)
{
int j;
for(j=i;jl;j++)
str[j]=str[j+1];
break;
}
}
}
int main()
{
char str[MAX],c;
printf("输入一个字符串:");
gets(str);
printf("输入一个字符:");
c=getchar();
Delete(str,c);
puts(str);
return 0;
}
接受字符:getchar();
输出字符:putchar();
不过每次只能接受输出一个字符.
#includestdio.h
void main(){
char a[10];
char b[10];
char *souce;
char *target;
int i = 0;
souce = a;
target = b;
scanf( "%s", souce );
getchar();
while ( *souce != '\0'){
i++;
if ( *souce == ',' ){
*target = '\0';
target = b;
printf( "%s", target );
putchar( ',' );
}
else if ( *souce == ';' ){
*target = '\0';
target = b;
printf( "%s", target );
putchar( ';' );
}
else{
*target++ = *souce;
}
souce++;
}
*target = '\0';
target = b;
printf( "%s", target );
getch();
}
char *fun(char *a, int len, char c)//函数功能返回字符串a中第一个以字符c开头的字串
{
int i;
char *p=a;
for(i=0;ilen;i++)
{
if(*p==c)
{
break;
}
p++;
}
if(i==len)
{
printf("没有匹配!\n");
return null;
}
else
{
return p;
}
}
int main()
{
char s[10]="abcdefghi";
char in;
char *p;
printf("输入你要匹配的字符:");
scanf("%c", in);
p=fun(s, 10, in);
printf("result:%s",p);
return 0;
}