在组合字符串后打印时没有获得任何输出

时间:2016-11-01 11:42:29

标签: c

组合一个人的名字,中间名和姓氏。

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);

}

这是代码

运行时的编译器没有显示任何内容

我找不到错误,帮助我。

是否有一些循环继续这种无限或某种逻辑错误。

3 个答案:

答案 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'

顺便说一下,要复制字符串,最好使用enter image description here函数。

答案 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);

}