сегодня я пытался подружиться с символьной * строкой ... но мне кажется, что я не могу :) Каждый раз, когда я вызываю функцию strcmp / strncmp / strcpy, мой источник искажается ...
вотфрагмент
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
int UID;
char name[20];
char surname[20];
};
char * getString(int minChars, int maxChars);
struct student * myStud;
int main(int argc, char** argv) {
myStud = (struct student*)malloc(sizeof(struct student));
while(1)
{
printf("\nEnter new name: ");
strcpy(myStud->name,getString(1,19));
printf("\n The values is now %s",myStud->name);
}
return (EXIT_SUCCESS);
}
char * getString(int minChars, int maxChars)
{
char string[maxChars+1];
scanAgain:
scanf("%s",&string);
if(strlen(string)<minChars)
{
printf("\nToo few symbols, try again: ");
goto scanAgain;
}
if(strlen(string)>maxChars)
{
printf("\nToo many symbols, try again: ");
goto scanAgain;
}
string[maxChars]='\0';
return(string);
}
Вывод:
Enter new name: Alekasdasd
The values is now Alekasda�#
Enter new name:
Я новичок, так что это может быть что-то очень простое ... может быть и нет.о, кстати, используя Linux и NetBeans в качестве SDK, GCC в качестве компилятора.