token1 = strtok(udtAddressVar.strName, " ");
strcpy(udtAddressVar.strFirstName, token1);
token1 = strtok(NULL, " ");
strcpy(udtAddressVar.strMiddleName, token1);
token1 = strtok(NULL, " ");
strcpy(udtAddressVar.strLastName, token1);
使用此代码但在没有中间名时失败。例如,对于“约翰·亨利·蓝”,而不是为了工作正常,“布拉德·亨利如果在C语言中为空,则跳过中间名
您是否尝试过为每个变量设置默认值?我的意思是,strFirstName,strMiddleName和strLastName在开始时具有NULL值,尝试将它们全部初始化为空字符串,例如“”,因为我认为由于在参数中放置了空值而导致出现错误。 –
它们都被初始化为空字符串。 – Coder