组合一个人的名字,中间名和姓氏。
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!='\0';i++)
{
name[i]=first_name[i];
}
name[i]=' ';
i++;
for(j=0;middle_name!='\0';j++)
{
name[i+j]=middle_name[j];
}
name[i+j]=' ';
j++;
for(k=0;last_name!='\0';k++)
{
name[i+j+k]=last_name[k];
}
name[i+j+k]='\0';
printf("%s",name);
}
这是代码
运行时的编译器没有显示任何内容
我找不到错误,帮助我。
是否有一些循环继续这种无限或某种逻辑错误。
答案 0 :(得分:3)
你的所有循环都是无限的:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
layout.sectionInset = UIEdgeInsets(top: 3, left: 3, bottom: 3, right: 3)
layout.minimumInteritemSpacing = 03
layout.minimumLineSpacing = 03
layout.invalidateLayout()
return CGSize(width: ((self.view.frame.width/4) - 4), height:((self.view.frame.width / 4) - 4));
}
条件for(i=0;first_name!='\0';i++)
始终为first_name!='\0'
。您应该检查true
:
first_name[i] != '\0'
答案 1 :(得分:1)
使用指针和在数组中存储输入的清洁方法。
#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;
}
答案 2 :(得分:1)
这是正确的代码。
#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);
}