Я просто хочу сохранить (добавить/канкатенировать) три мобильных номера в массиве символов. В цикле for я даю три мобильных номера. Я написал функцию для хранения мобильных номеров. Массив символов хранит первый номер мобильного телефона, печатая длину переменной массива. Когда я пытаюсь сохранить второй номер мобильного телефона, массив символов становится нулевым (длина массива равна нулю). На самом деле индекс массива переменных "auth_mob_no" постоянно увеличивается (j++
), и для получения второго числа необходимо установить индекс массива переменных "mob_no" равным нулю (k=0). Почему не сохраняются строки после того, как я дал первую строку?
#include <stdio.h>
#include <string.h>
char mob_auth(char mob_no[]);
int i,j=0,k=0;
int main()
{
char num[15];
for(i=0;i<3;i++)
{
scanf("%s",num);
if(mob_auth(num))
{
printf("Mobile Number stored\n");
}
}
return 0;
}
char mob_auth(char mob_no[])
{
char auth_mob_no[50];
while(mob_no[k]!='\0')
{
auth_mob_no[j]=mob_no[k];
k++;j++;
}
auth_mob_no[j]='\0';
k=0;
printf("len:%d\n",strlen(auth_mob_no));
return 1;
}
Выход:
input by user: +919999999999
len:13
Authicated Mobile Number
input by user: +918888888888
len:0
Authicated Mobile Number
i
,j
иk
должны быть локальными; односимвольные имена — очень плохой выбор для глобальной переменной. - person Jonathan Leffler   schedule 19.11.2016