C 合并字符串后打印时未获得任何输出
将一个人的名字、中间名和姓氏组合起来 int main() 这是密码 编译器在运行时不显示任何内容 我找不到错误,帮帮我C 合并字符串后打印时未获得任何输出,c,C,将一个人的名字、中间名和姓氏组合起来 int main() 这是密码 编译器在运行时不显示任何内容 我找不到错误,帮帮我 它是让某个循环继续这个无穷大还是某个逻辑错误。你所有的循环都是无限的: for(i=0;first_name!='\0';i++) 条件名字!='\0'始终为真。您应该检查名字[i]!='\0': for(i=0; first_name[i] != '\0'; i++) 顺便说一下,要复制字符串,最好使用函数。所有循环都是无限的: for(i=0;first_name!=
它是让某个循环继续这个无穷大还是某个逻辑错误。你所有的循环都是无限的:
for(i=0;first_name!='\0';i++)
条件名字!='\0'
始终为真
。您应该检查名字[i]!='\0'
:
for(i=0; first_name[i] != '\0'; i++)
顺便说一下,要复制字符串,最好使用函数。所有循环都是无限的:
for(i=0;first_name!='\0';i++)
条件名字!='\0'
始终为真
。您应该检查名字[i]!='\0'
:
for(i=0; first_name[i] != '\0'; i++)
顺便说一下,要复制字符串,最好使用函数。更干净的方法是使用指针并将输入存储在数组中
#include <stdio.h>
int main (void)
{
char result[30];
char *pntResult = result;
char *appendStr (char *dest, char *strToAppend);
char *name[3] = { "FirstName", "MiddleName", "LastName" };
int i;
for ( i = 0; i < 3; ++i )
pntResult = appendStr (pntResult, name[i]);
*(pntResult - 1) = '\0';
printf ("%s\n", result);
return 0;
}
char *appendStr (char *dest, char *strToAppend)
{
while ( *strToAppend )
*dest++ = *strToAppend++;
*dest++ = ' ';
return dest;
}
#包括
内部主(空)
{
字符结果[30];
char*pntResult=结果;
char*appendStr(char*dest,char*strToAppend);
char*name[3]={“FirstName”、“MiddleName”、“LastName”};
int i;
对于(i=0;i<3;++i)
pntResult=appendStr(pntResult,名称[i]);
*(pntResult-1)='\0';
printf(“%s\n”,结果);
返回0;
}
char*appendStr(char*dest,char*strToAppend)
{
while(*strToAppend)
*dest++=*strToAppend++;
*dest++='';
返回目的地;
}
使用指针并将输入存储在数组中的更干净的方法
#include <stdio.h>
int main (void)
{
char result[30];
char *pntResult = result;
char *appendStr (char *dest, char *strToAppend);
char *name[3] = { "FirstName", "MiddleName", "LastName" };
int i;
for ( i = 0; i < 3; ++i )
pntResult = appendStr (pntResult, name[i]);
*(pntResult - 1) = '\0';
printf ("%s\n", result);
return 0;
}
char *appendStr (char *dest, char *strToAppend)
{
while ( *strToAppend )
*dest++ = *strToAppend++;
*dest++ = ' ';
return dest;
}
#包括
内部主(空)
{
字符结果[30];
char*pntResult=结果;
char*appendStr(char*dest,char*strToAppend);
char*name[3]={“FirstName”、“MiddleName”、“LastName”};
int i;
对于(i=0;i<3;++i)
pntResult=appendStr(pntResult,名称[i]);
*(pntResult-1)='\0';
printf(“%s\n”,结果);
返回0;
}
char*appendStr(char*dest,char*strToAppend)
{
while(*strToAppend)
*dest++=*strToAppend++;
*dest++='';
返回目的地;
}
以下是正确的代码
#include <stdio.h>
int main(){
int i,j,k;
char first_name[11]="Gursheesh";
char middle_name[10]="Singh";
char last_name[10]="Chawla";
char name[30];
for(i=0;first_name[i]!='\0';i++)
{
name[i]=first_name[i];
}
name[i]=' ';
i++;
for(j=0;middle_name[j]!='\0';j++)
{
name[i+j]=middle_name[j];
}
name[i+j]=' ';
j++;
for(k=0;last_name[k]!='\0';k++)
{
name[i+j+k]=last_name[k];
}
name[i+j+k]='\0';
printf("%s",name);
}
#包括
int main(){
int i,j,k;
char first_name[11]=“Gursheesh”;
char middle_name[10]=“Singh”;
char last_name[10]=“Chawla”;
字符名[30];
对于(i=0;名字[i]!='\0';i++)
{
名字[i]=名字[i];
}
名称[i]='';
i++;
对于(j=0;中间名称[j]!='\0';j++)
{
名称[i+j]=中间名称[j];
}
名称[i+j]='';
j++;
对于(k=0;姓氏[k]!='\0';k++)
{
姓名[i+j+k]=姓氏[k];
}
名称[i+j+k]='\0';
printf(“%s”,名称);
}
以下是正确的代码
#include <stdio.h>
int main(){
int i,j,k;
char first_name[11]="Gursheesh";
char middle_name[10]="Singh";
char last_name[10]="Chawla";
char name[30];
for(i=0;first_name[i]!='\0';i++)
{
name[i]=first_name[i];
}
name[i]=' ';
i++;
for(j=0;middle_name[j]!='\0';j++)
{
name[i+j]=middle_name[j];
}
name[i+j]=' ';
j++;
for(k=0;last_name[k]!='\0';k++)
{
name[i+j+k]=last_name[k];
}
name[i+j+k]='\0';
printf("%s",name);
}
#包括
int main(){
int i,j,k;
char first_name[11]=“Gursheesh”;
char middle_name[10]=“Singh”;
char last_name[10]=“Chawla”;
字符名[30];
对于(i=0;名字[i]!='\0';i++)
{
名字[i]=名字[i];
}
名称[i]='';
i++;
对于(j=0;中间名称[j]!='\0';j++)
{
名称[i+j]=中间名称[j];
}
名称[i+j]='';
j++;
对于(k=0;姓氏[k]!='\0';k++)
{
姓名[i+j+k]=姓氏[k];
}
名称[i+j+k]='\0';
printf(“%s”,名称);
}
他应该使用strncpy
,因为name
的容量严格限制为30个字符。如果您知道不能超过限制(这种情况很少发生),则仅使用strcpy(自C11起)。@UniversE Yes或strcpy(自C11起)。在我的回答中,我有所有这些函数的链接。谢谢你,我不知道我怎么会找不到这样一个可怜的错误。他应该使用strncpy
,因为name
的容量严格限制为30个字符。如果您知道不能超过限制(这种情况很少发生),则仅使用strcpy(自C11起)。@UniversE Yes或strcpy(自C11起)。我的答案中有所有这些函数的链接。谢谢你,我不知道我怎么会找不到这样一个可怜的错误。我对指针不太了解,我会在学习指针的时候检查它,这是字符串之后我的下一个主题。我对指针不太了解,我会在学习指针的时候检查它,这是以后我的下一个主题串。